Prosecution Insights
Last updated: August 17, 2026
Application No. 18/818,672

Electronic system, electronic apparatus and initialization method thereof having firmware forward and backward compatibility mechanism

Non-Final OA §103
Filed
Aug 29, 2024
Priority
Sep 04, 2023 — TW 112133547
Examiner
BOURZIK, BRAHIM
Art Unit
Tech Center
Assignee
Realtek Semiconductor Corporation
OA Round
1 (Non-Final)
64%
Grant Probability
Moderate
1-2
OA Rounds
1y 6m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 64% of resolved cases
64%
Career Allowance Rate
248 granted / 387 resolved
+4.1% vs TC avg
Strong +44% interview lift
Without
With
+44.0%
Interview Lift
resolved cases with interview
Typical timeline
3y 6m
Avg Prosecution
26 currently pending
Career history
418
Total Applications
across all art units

Statute-Specific Performance

§101
13.9%
-26.1% vs TC avg
§103
68.5%
+28.5% vs TC avg
§102
4.3%
-35.7% vs TC avg
§112
7.8%
-32.2% vs TC avg
Black line = Tech Center average estimate • Based on career data from 387 resolved cases

Office Action

§103
Notice of Pre-AIA or AIA Status 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 are pending in this office action. Claim Rejections - 35 USC § 103 In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status. 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, 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-20 are rejected under 35 U.S.C. 103 as being unpatentable over Rickard et al US20250045040A1 in view of Meller et al US20050027758A1. As per claim 1, Rickard discloses an electronic apparatus having firmware forward and backward compatibility mechanism, comprising: a read-only storage circuit configured to store first version firmware: [0025] In the example of FIG. 1, the original image 105 represents an executable file stored in the microprocessor circuitry 125 prior to an update process, described herein”; that comprises at least one variable function corresponding to a first version content [0039]“in other examples, the second plurality of sectors 150 stores data to provide continuity to the original image 105. For example, the second plurality of sectors 150 stores data specific to the original image 105”; a readable and writable storage circuit: [0031] “ The update circuitry 130 is adaptive to be coupled to the differential circuitry 115 by the update medium 120. The update circuitry 130 reads the differential image data and the original image 105 from the flash memory 140.”; and a processing circuit configured to: store the first version firmware from the read-only storage circuit to the readable and writable storage circuit to begin to perform a system initialization: [0043]“At a first time (T.sub.0) 260, the flash memory 140 is configured for normal mode of operation. At the first time 260, the microprocessor circuitry 125 is turned on (e.g., power to be supplied, boot-up). Following the first time 260, the microprocessor circuitry 125 executes instructions of the first plurality of sectors 145 to initialize the microprocessor circuitry 125. After failing to detect differential image data in the third plurality of sectors 155, the microprocessor circuitry 125 proceeds with executing instructions of the fourth plurality of sectors 160. At such a time following the first time 260, the microprocessor circuitry 125 proceeds with normal operation by executing instructions of the original image 105 of FIG. 1 stored in the fourth plurality of sectors 160.”; determine that a version of the second version firmware comprised in a driver received from a driver storage terminal is earlier than the version of the first version firmware: [0017]“ An updated version of a previous executable file, which includes the desired improvements and/or additions, is created external to a device that is to execute the instructions. For example, the manufacturer or supplier can generate the updated version as a software update. Once created, an updated image is supplied to the device that is to execute the instructions.”; wherein the second version firmware comprises the variable function corresponding to a second version content: [0026]”The updated image 110 represents an executable file to be stored in the microprocessor circuitry 125. In some examples, the updated image 110 is a modified version of the original image 105. For example, designers remove, add, and/or modify machine-readable instructions of the original image 105 to generate the updated image 110. The updated image 110 replaces the original image 105 in the microprocessor circuitry 125 responsive to an update process. During the update process, the microprocessor circuitry 125 replaces the original image 105 with the updated image 110. Following the update process the updated image 110 may be referred to as an original image. Such an update process is described below in connection with FIGS. 2-7C.”; merge the variable function of the first version content and the variable function of the second version content and replace the first version function pointer by the second version function pointer: [0032]“The update circuitry 130 creates a swap area (illustrated in connection with FIG. 4, below) in the flash memory 140 to store the update image 110 by shifting the original image 105. The update circuitry 130 constructs portions of the updated image 110 in the RAM 135 using the original image 105 and the differential image data. The update circuitry 130 writes the constructed portions of the updated image 110 to the swap area in the flash memory 140. The update circuitry 130 shifts the swap area by clearing portions of the original image 105.”; so to generate updated firmware having an updated shared data section; and perform function call according to the updated shared data section of the updated firmware to continue performing the system initialization: [0045] “Between the second time 270 and the third time 280, the update circuitry 130 constructs the updated image 110 based on the original image 105 of the fourth plurality of sectors 160 and the differential image data of the third plurality of sectors 155. At the third time 280, the update circuitry 130 has overwritten each of the memory sectors 210-250 with constructed sectors of the updated image 110. Following the third time 280, the update circuitry 130 may erase the third plurality of sectors 155 and begin normal operation by executing instructions of the updated image 110 in the fourth plurality of sectors 160.”; But not explicitly: and a first shared data section, and the first shared data section comprises a first version function pointer of the variable function; and a second shared data section, and the second shared data section comprises a second version function pointer of the variable function, in which the second shared data section and the first shared data section have a same section structure; Meller discloses: and a first shared data section, and the first shared data section comprises a first version function pointer of the variable function: [0160] “The meta-data 9A01 in association with the old version 901 describes the four blocks, their respective start address and their length. The meta-data 9A02 in association with the new version 902 describes the blocks included therein. By comparing meta-data 9A01 with meta-data 9A02 it can be demonstrated that the start address of block 905' in this case is similar to this of block 905 of the old version. However, the start address of block 906' equals to (addr(906)+size(909)). In addition, the start address of block 907', when compared to the start address of block 907 of the old version reflects a shift of size(909) and size(910), that is, addr(907')=addr(907)+size(909)+size(910). The start address of block 908' demonstrates an accumulative shift of size(909), size(910), size(911) and size(912), that is, addr(908')=addr(908)+size(90- 9)+size(910)+size(911)+size(912)”; and a second shared data section, and the second shared data section comprises a second version function pointer of the variable function, in which the second shared data: [0160] “The meta-data 9A01 in association with the old version 901 describes the four blocks, their respective start address and their length. The meta-data 9A02 in association with the new version 902 describes the blocks included therein. By comparing meta-data 9A01 with meta-data 9A02 it can be demonstrated that the start address of block 905' in this case is similar to this of block 905 of the old version. However, the start address of block 906' equals to (addr(906)+size(909)). In addition, the start address of block 907', when compared to the start address of block 907 of the old version reflects a shift of size(909) and size(910), that is, addr(907')=addr(907)+size(909)+size(910). The start address of block 908' demonstrates an accumulative shift of size(909), size(910), size(911) and size(912), that is, addr(908')=addr(908)+size(90- 9)+size(910)+size(911)+size(912)”; It would have obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to combine the teachings of cited references. One of ordinary skill in the art before the effective filling date of the claimed invention would have been motivated to incorporate the teachings of Meller into teachings of Rickard to produce more efficient update packages or "compact update packages". In those cases when there are modified and unmodified data entries in a small delta, it is possible to reorganize their order in a way forming two successive groups. One group includes modified data entries, and therefore its size can be reduced and it can be compressed efficiently, wherein the other group includes data entries (that is, unmodified data entries). Applying this embodiment, when grouping data entries in a delta, it is required to update the references included in the commands, to reflect the data entries' new position (following the grouping).[Meller 0186]. As per claim 2, the rejection of claim 1 is incorporated and furthermore Rickard does not explicitly disclose: wherein the first version firmware further comprises at least one non-variable function compatible in the second version firmware, the first shared data section comprises a non-variable function pointer of the non-variable function, and the second shared data section comprises an invalid pointer corresponding to the non-variable function; and the processing circuit is further configured to keep the non-variable function pointer in the updated shared data section according to the invalid pointer to generate the updated firmware. Meller discloses: wherein the first version firmware further comprises at least one non-variable function compatible in the second version firmware: [0125] “A person versed in the art can appreciate that for updating the old version 501 to new version 502, according to one embodiment it is possible to copy block 504 and a first portion of block 514 to the new version, insert the new block 515, and then copy the second portion of block 514 together with blocks 516 and 517 to the new version.”; the first shared data section comprises a non-variable function pointer of the non-variable function: [0125]”For example, in the old version the explicit reference item 508 references item 511 and therefore the least significant bytes of item 508 include a value indicative of addr(511). In the old version item 508 is located at addr(508). After copying block 504 to the new version, it is appreciated that item 508 is located at addr(508') which is backward to addr(508) in this example. “ and the second shared data section comprises an invalid pointer corresponding to the non-variable function: [0125]”After copying block 504 to the new version, it is appreciated that item 508 is located at addr(508') which is backward to addr(508) in this example”; and the processing circuit is further configured to keep the non-variable function pointer in the updated shared data section according to the invalid pointer to generate the updated firmware: [0125]”Therefore, according to the embodiment, after copying content from the old version to the new one and after inserting new blocks (such as block 515) the update package can include commands for replacing reference items, such as "in 508' replace the value indicative of addr(511) with a value indicative of addr(511')", or shortly, "Replace 508, 508'". It would have obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to combine the teachings of cited references. One of ordinary skill in the art before the effective filling date of the claimed invention would have been motivated to incorporate the teachings of Meller into teachings of Rickard to produce more efficient update packages or "compact update packages" . In those cases when there are modified and unmodified data entries in a small delta, it is possible to reorganize their order in a way forming two successive groups. One group includes modified data entries, and therefore its size can be reduced and it can be compressed efficiently, wherein the other group includes data entries (that is, unmodified data entries). Applying this embodiment, when grouping data entries in a delta, it is required to update the references included in the commands, to reflect the data entries' new position (following the grouping).[Meller 0186]. As per claim 3, the rejection of claim 2 is incorporated and furthermore Rickard does not explicitly disclose: wherein the first version firmware comprises at least one third function not comprised by the second version firmware and comprises an additional shared data section that comprises a third function pointer of the third function; and the processing circuit is further configured to merge the variable function of the first version content, the variable function of the second version content and the third function and keep the additional shared data section in the updated shared data section to generate the updated firmware. Meller discloses: wherein the first version firmware comprises at least one third function not comprised by the second version firmware and comprises an additional shared data section that comprises a third function pointer of the third function; and the processing circuit is further configured to merge the variable function of the first version content, the variable function of the second version content and the third function and keep the additional shared data section in the updated shared data section to generate the updated firmware. [0081] “The old pointer 218 moves to point to the beginning of block 205, i.e., it points to item 207. Next, the update package includes a command for copying five hundreds items to the current position of the new pointer 219, thereby shifting the block 205 five items backwards, giving rise to block 205'. The old pointer 218 moves to point to item 206, while the new pointer 219 moves to point to the position where item 206' will be positioned in accordance with the example below. It would have obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to combine the teachings of cited references. One of ordinary skill in the art before the effective filling date of the claimed invention would have been motivated to incorporate the teachings of Meller into teachings of Rickard to produce more efficient update packages or "compact update packages". In those cases when there are modified and unmodified data entries in a small delta, it is possible to reorganize their order in a way forming two successive groups. One group includes modified data entries, and therefore its size can be reduced and it can be compressed efficiently, wherein the other group includes data entries (that is, unmodified data entries). Applying this embodiment, when grouping data entries in a delta, it is required to update the references included in the commands, to reflect the data entries' new position (following the grouping).[Meller 0186]. As per claim 4, the rejection of claim 1 is incorporated and furthermore Rickard does not explicitly disclose: wherein the section structure comprises an address allocation configuration and a section length; Meller discloses: wherein the section structure comprises an address allocation configuration and a section length; [0149]“the associated meta-data 806 describes the content and the blocks thereof, wherein for each block the meta-data 806 provides a start address and the length of the block. It should be notified, however, that this is a non-limiting example and meta-data can include other data instead of the start address and length of each block.”; It would have obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to combine the teachings of cited references. One of ordinary skill in the art before the effective filling date of the claimed invention would have been motivated to incorporate the teachings of Meller into teachings of Rickard to produce more efficient update packages or "compact update packages" . In those cases when there are modified and unmodified data entries in a small delta, it is possible to reorganize their order in a way forming two successive groups. One group includes modified data entries, and therefore its size can be reduced and it can be compressed efficiently, wherein the other group includes data entries (that is, unmodified data entries). Applying this embodiment, when grouping data entries in a delta, it is required to update the references included in the commands, to reflect the data entries' new position (following the grouping).[Meller 0186]. As per claim 5, the rejection of claim 1 is incorporated and furthermore Rickard discloses: wherein the driver comprises a plurality of firmware, and the processing circuit is further configured to: perform a handshake process with the driver storage terminal such that the driver storage terminal retrieves one of the firmware that matches the electronic apparatus as the second version firmware; and receive the second version firmware from the driver storage terminal. [0027] “The differential circuitry 115 receives the images 105 and 110. In some examples, the differential circuitry 115 receives the images 105 and 110 from external circuitry, such as a converter, a compiler, a synthesis tool, etc. In other examples, the differential circuitry 115 access the images 105 and 110 based on file paths corresponding to each of the images 105 and 110, such as a location on a network, personal computer, workstation, etc”; [0017] “Designers may update an executable file, such as an image for programmable circuitry, to improve operations, add additional functionality, fix issues, etc. An updated version of a previous executable file, which includes the desired improvements and/or additions, is created external to a device that is to execute the instructions. For example, the manufacturer or supplier can generate the updated version as a software update. Once created, an updated image is supplied to the device that is to execute the instructions.”; As per claim 6, the rejection of claim 1 is incorporated and furthermore Rickard does not explicitly disclose: wherein the first shared data section of the first version firmware further comprises a first global variable section, the second shared data section of the second version firmware further comprises a second global variable section, each of the first global variable section and the second global variable section comprises a shared data structure, and the first global variable section further selectively comprises a non-shared data structure disposed behind the shared data structure such that the updated firmware keeps the first global variable section. Meller discloses: wherein the first shared data section of the first version firmware further comprises a first global variable section, the second shared data section of the second version firmware further comprises a second global variable section, each of the first global variable section and the second global variable section comprises a shared data structure, and the first global variable section further selectively comprises a non-shared data structure disposed behind the shared data structure such that the updated firmware keeps the first global variable section. [0081] As shown, the first command included in the commands section 214 is for deleting five items, that is, deleting five items from the position pointed to by the old pointer 218, thereby deleting block 204. The old pointer 218 moves to point to the beginning of block 205, i.e., it points to item 207. Next, the update package includes a command for copying five hundreds items to the current position of the new pointer 219, thereby shifting the block 205 five items backwards, giving rise to block 205'. The old pointer 218 moves to point to item 206, while the new pointer 219 moves to point to the position where item 206' will be positioned in accordance with the example below. It would have obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to combine the teachings of cited references. One of ordinary skill in the art before the effective filling date of the claimed invention would have been motivated to incorporate the teachings of Meller into teachings of Rickard to produce more efficient update packages or "compact update packages" . In those cases when there are modified and unmodified data entries in a small delta, it is possible to reorganize their order in a way forming two successive groups. One group includes modified data entries, and therefore its size can be reduced and it can be compressed efficiently, wherein the other group includes data entries (that is, unmodified data entries). Applying this embodiment, when grouping data entries in a delta, it is required to update the references included in the commands, to reflect the data entries' new position (following the grouping).[Meller 0186]. As per claim 7, the rejection of claim 6 is incorporated and furthermore Rickard does not explicitly disclose: wherein each of a plurality of global variables comprised by the first global variable section and the second global variable section has a variable attribute used to perform version identification: Meller discloses: wherein each of a plurality of global variables comprised by the first global variable section and the second global variable section has a variable attribute used to perform version identification: [0116]“FIG. 5 illustrates a more complex example of old and new versions (compared to the old and new versions illustrated in FIG. 2) in order to exemplify and explain the integer notation embodiment. In the figure, an old version 501 is updated to give rise to a new version 502. Thus, the old version 501 includes a block 503, deleted while generating the new version 502. The size of the deleted block is referred to, hereinafter, as size(503). Following the example of FIG. 2, it can be understood that further to the deletion of block 503, the items in the new version are expected to be shifted backwards by size(503) items backwards”; It would have obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to combine the teachings of cited references. One of ordinary skill in the art before the effective filling date of the claimed invention would have been motivated to incorporate the teachings of Meller into teachings of Rickard to produce more efficient update packages or "compact update packages" . In those cases when there are modified and unmodified data entries in a small delta, it is possible to reorganize their order in a way forming two successive groups. One group includes modified data entries, and therefore its size can be reduced and it can be compressed efficiently, wherein the other group includes data entries (that is, unmodified data entries). Applying this embodiment, when grouping data entries in a delta, it is required to update the references included in the commands, to reflect the data entries' new position (following the grouping).[Meller 0186]. As per claim 8, the rejection of claim 1 is incorporated and furthermore Rickard discloses: wherein the driver storage terminal is a host apparatus independent from the electronic apparatus, is a master apparatus disposed in a system-on-a-chip together with the electronic apparatus or a flash memory further comprised by the electronic apparatus. [0018] Some devices store the updated image in flash memory of the programmable circuitry. Using the flash memory to store the updated image allows the programmable circuitry to continue to store the updated image when the programmable circuitry is powered down. A process to replace an existing/original image with the updated image begins responsive to power cycling (e.g., turning off and turning on) the programmable circuitry. Such a process of replacing an existing/original image with the updated image may be referred to as an update process. Once power is restored, the programmable circuitry executes machine-readable instructions from the flash memory to instantiate circuitry to replace the original image with the updated image. Claims 9, 10, 11, 12, 13, 14, 15, 16 are the electronic system claims corresponding to electronic apparatus claims 1, 2, 3, 4, 5, 6, 7, 8 and rejected under the same rational set forth in connection with the rejection of claims 1, 2, 3, 4, 5, 6, 7, 8 above. Claims 17, 18, 19, 20 are the method claim corresponding to system claims 1, 2, 3, 4 and rejected under the same rational set forth in connection with the rejection of claims 1, 2, 3, 4 above. Pertinent arts: US9047334B1: Atomically updating an in-memory data structure that is directly accessible by a processor includes comparing old information associated with an old version of the in-memory data structure with current information associated with a current version of the in-memory data structure US20200233659A1: According to another embodiment, the server may transmit a compressed delta file to the electronic device by using the communication unit . The compressed delta file may correspond to data obtained by compressing a third delta file generated by the delta file changer that changes a first delta file generated by the delta file generator. Conclusion Any inquiry concerning this communication or earlier communications from the examiner should be directed to BRAHIM BOURZIK whose telephone number is (571)270-7155. The examiner can normally be reached Monday-Friday (8-4:30). 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, Wei Y Mui can be reached at 571-270-2738. 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. /BRAHIM BOURZIK/ Examiner, Art Unit 2191 /WEI Y MUI/ Supervisory Patent Examiner, Art Unit 2191
Read full office action

Prosecution Timeline

Aug 29, 2024
Application Filed
Jul 29, 2026
Non-Final Rejection mailed — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12669988
SYSTEMS AND METHODS FOR UPDATING INFORMATION HANDLING SYSTEMS AT A REMOTE NETWORK LOCATION FROM THE UPDATE REPOSITORY
3y 6m to grant Granted Jun 30, 2026
Patent 12669994
PHYSICAL NODE OPTIMIZER IN A CONTAINERIZED APPLICATION MANAGEMENT SYSTEM
3y 0m to grant Granted Jun 30, 2026
Patent 12657112
INTEGRATED SYSTEM FOR ASSESSING APPLICATION FITNESS
3y 2m to grant Granted Jun 16, 2026
Patent 12645570
METHOD AND SYSTEM FOR OPTIMIZING TESTING AND DEPLOYMENT OF AN APPLICATION
3y 4m to grant Granted Jun 02, 2026
Patent 12619520
Software Engineering with Machine-Readable Feature Specifications
3y 0m to grant Granted May 05, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

1-2
Expected OA Rounds
64%
Grant Probability
99%
With Interview (+44.0%)
3y 6m (~1y 6m remaining)
Median Time to Grant
Low
PTA Risk
Based on 387 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month