DETAILED ACTION
The Office Action is in response to claims filed 10/30/2024.
Claims 1-20 are currently pending.
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 .
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 1-20 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
The term “some” in claims 1, 9, andis a relative term which renders the claim indefinite. The term “some” is not defined by the claim, the specification does not provide a standard for ascertaining the requisite degree, and one of ordinary skill in the art would not be reasonably apprised of the scope of the invention. Thus it is unclear to what degree or amount of the “plurality of scripts” will be used to define the selection step.
The limitation “constructing, an environment generated based on the at least one hardware board an image for the selected SoC” is renders the claim vague and indefinite. It is unclear if the claim will construct an environment or an image for the selected SoC. Furthermore, it is unclear if the “constructed environment,” “an image for the selected SoC,” or both are “based on the at least one hardware board”.
Claims 1-2, 4, 8-10, recites the limitation "the selected SoC". There is insufficient antecedent basis for this limitation in the claim.
Claims 17-20 recites the limitation "the system" in line 1. There is insufficient antecedent basis for this limitation in the claim. For the purposes of compact prosecution, “the system” is interpreted at “the apparatus” or “the computing device”.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to a judicial exception (i.e., a law of nature, a natural phenomenon, or an abstract idea) without significantly more.
Claim Interpretation: Under the broadest reasonable interpretation (BRI), the limitations of Claim 1 are presumed to have their plain meaning consistent with the specification as it would be interpreted by one of ordinary skill in the art. See MPEP § 2111.
Step 1: Claim 1 is directed to a method, which is a process (a series of steps or acts), and falls within one of the statutory categories of invention.
Step 2A, Prong One: Claim 1 recites the limitations:
(a) selecting, based on at least some of the plurality of scripts and from a plurality of System-on-a-Chip (SoC) configurations, an SoC configuration configured to build an image;
These recited steps, under the broadest reasonable interpretation (BRI), cover performance of the steps in the human mind alone or with the aid of pen and paper.
Nothing in the claim precludes the steps from practically being performed in the human mind alone using observation, evaluation, judgment, and opinion or with the aid of pen and paper. For example, the limitation (a) in the context of the claim encompasses a human selecting an SOC configuration configured to build an image in the human mind alone using observation, evaluation, judgment, and opinion or with the aid of pen and paper to select an SOC configuration configured to build an image. See MPEP § 2106.04(a)(2)(III).
If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the human mind alone or with the aid of pen and paper but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
Step 2A, Prong Two: This judicial exception is not integrated into a practical application. In particular, the claim recites the additional elements:
(1) receiving a plurality of scripts;
(2) receiving a custom configuration script file corresponding to the selected SoC configuration;
(3) transmitting the custom configuration script file to at least one hardware board of a plurality of hardware boards, wherein the at least one hardware board is compatible with the custom configuration script file;
The additional elements (1) to (3) are mere data gathering/transmitting/outputting recited at a high level of generality and thus, are insignificant extra-solution activities. See MPEP § 2106.05(g). Furthermore, all uses of the recited judicial exception require such data gathering/transmitting/outputting, and, as such, the additional elements do not impose any meaningful limits on the claim. The additional elements amount to necessary data gathering/transmitting/outputting. See MPEP § 2106.05(g).
Also, the claim recites the additional element:
(4) constructing, an environment generated based on the at least one hardware board an image for the selected SoC.
The additional element (4) merely indicates a field of use or technological environment in which the judicial exception is performed. Although the additional element (4) limits the identified judicial exceptions (a) and (b), however, this type of limitation merely confines the use of the abstract idea to a particular field of use or technological environment (constructing, an environment generated based on the at least one hardware board an image for the selected SoC.) and thus, fails to add an inventive concept to the claims. See MPEP § 2106.05(h).
Accordingly, even when viewed in combination, the additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea.
Step 2B: The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception because the additional elements when considered both individually and as a combination do not amount to significantly more than the abstract idea. As discussed above with respect to integration of the abstract idea into a practical application, the claim recites the additional elements:
(1) receiving a plurality of scripts;
(2) receiving a custom configuration script file corresponding to the selected SoC configuration;
(3) transmitting the custom configuration script file to at least one hardware board of a plurality of hardware boards, wherein the at least one hardware board is compatible with the custom configuration script file;
The additional elements (1) to (3) simply append well-understood, routine, and conventional activities previously known to the industry, specified at a high level of generality, to the judicial exception is not indicative of an inventive concept. MPEP § 2106.05(d)(II) expressly states that the courts have recognized the computer function of receiving or transmitting data over a network, e.g., using the Internet to gather data as a well‐understood, routine, and conventional computer function when it is claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activities. Thus, a person of ordinary skill in the art would readily comprehend that it is well-understood, routine, and conventional in the computing art to receive scripts, receive configuration script files, and transmit configuration script file. Therefore, the limitations remain insignificant extra-solution activities even upon reconsideration and do not amount to significantly more.
Also the claim recites the additional element:
(4) constructing, an environment generated based on the at least one hardware board an image for the selected SoC.
The additional element (4) is at best mere instructions to “apply” the abstract ideas, which cannot provide an inventive concept. Therefore, the additional element does not meaningfully limit the claim because employing generic computer functions to execute an abstract idea, even when limiting the use of the abstract idea to one particular field of use or technological environment, does not add significantly more.
Thus, taken alone, the additional elements do not amount to significantly more than the above-identified judicial exception (the abstract idea). Looking at the additional elements as a combination adds nothing that is not already present when looking at the additional elements taken individually. Even when considered in combination, the additional elements represent insignificant extra-solution activities and a field of use or technological environment and therefore do not provide an inventive concept. The claim is not patent eligible.
Claim Interpretation: Under the broadest reasonable interpretation (BRI), the limitations of Claim 9 are presumed to have their plain meaning consistent with the specification as it would be interpreted by one of ordinary skill in the art. See MPEP § 2111.
Step 1: Claim 9 is directed to a system, which is a machine, and falls within one of the statutory categories of invention.
Step 2A, Prong One: Claim 9 recites the limitations:
(a) selecting, based on at least some of the plurality of scripts and from a plurality of System-on-a-Chip (SoC) configurations, an SoC configuration configured to build an image;
These recited steps, under the broadest reasonable interpretation (BRI), cover performance of the steps in the human mind alone or with the aid of pen and paper. That is, other than reciting:
(1) . A system comprising: a processor; and a memory including instructions that, when executed by the processor, cause the processor to
Nothing in the claim precludes the steps from practically being performed in the human mind alone using observation, evaluation, judgment, and opinion or with the aid of pen and paper. For example, the limitation (a) in the context of the claim encompasses a human selecting an SOC configuration configured to build an image in the human mind alone using observation, evaluation, judgment, and opinion or with the aid of pen and paper to select an SOC configuration configured to build an image. See MPEP § 2106.04(a)(2)(III).
If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the human mind alone or with the aid of pen and paper but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
Step 2A, Prong Two: This judicial exception is not integrated into a practical application in particular, the claim recites the additional elements:
(1) . A system comprising: a processor; and a memory including instructions that, when executed by the processor, cause the processor to
The additional elements are recited at a high level of generality such that it amounts to no more than a mere instructions to apply the judicial exception using generic computer/computing components. The processor and memory are used as a tool to perform the selecting, receiving, transmitting, construction steps of the claim.
Also, the claim recites the additional element:
(2) receiving a plurality of scripts;
(3) receiving a custom configuration script file corresponding to the selected SoC configuration;
(4) transmitting the custom configuration script file to at least one hardware board of a plurality of hardware boards, wherein the at least one hardware board is compatible with the custom configuration script file;
The additional elements (2) to (4) are mere data gathering/transmitting/outputting recited at a high level of generality and thus, are insignificant extra-solution activities. See MPEP § 2106.05(g). Furthermore, all uses of the recited judicial exception require such data gathering/transmitting/outputting, and, as such, the additional elements do not impose any meaningful limits on the claim. The additional elements amount to necessary data gathering/transmitting/outputting. See MPEP § 2106.05(g).
Also, the claim recites the additional element:
(5) constructing, an environment generated based on the at least one hardware board an image for the selected SoC.
The additional element (5) merely indicates a field of use or technological environment in which the judicial exception is performed. Although the additional element (5) limits the identified judicial exceptions (a) and (b), however, this type of limitation merely confines the use of the abstract idea to a particular field of use or technological environment (constructing, an environment generated based on the at least one hardware board an image for the selected SoC.) and thus fails to add an inventive concept to the claims. See MPEP § 2106.05(h).
Accordingly, even when viewed in combination, the additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea.
Step 2B: The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception because the additional elements when considered both individually and as a combination do not amount to significantly more than the abstract idea. As discussed above with respect to integration of the abstract idea into a practical application, the claim recites the additional elements:
(1) . A system comprising: a processor; and a memory including instructions that, when executed by the processor, cause the processor to
The additional element (1) amounts to no more than mere instructions to apply the judicial exception using generic computer components. The analysis under Step 2A, Prong Two is carried through to Step 2B. The use of a computer or other machinery in its ordinary capacity does not integrate a judicial exception into a practical application or provide significantly more.
Also, the claim recites the additional element:
(2) receiving a plurality of scripts;
(3) receiving a custom configuration script file corresponding to the selected SoC configuration;
(4) transmitting the custom configuration script file to at least one hardware board of a plurality of hardware boards, wherein the at least one hardware board is compatible with the custom configuration script file;
The additional elements (2) to (4) simply append well-understood, routine, and conventional activities previously known to the industry, specified at a high level of generality, to the judicial exception is not indicative of an inventive concept. MPEP § 2106.05(d)(II) expressly states that the courts have recognized the computer function of receiving or transmitting data over a network, e.g., using the Internet to gather data as a well‐understood, routine, and conventional computer function when it is claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activities. Thus, a person of ordinary skill in the art would readily comprehend that it is well-understood, routine, and conventional in the computing art to receive scripts, receive configuration script files, and transmit configuration script file. Therefore, the limitations remain insignificant extra-solution activities even upon reconsideration and do not amount to significantly more.
Also the claim recites the additional element:
(5) constructing, an environment generated based on the at least one hardware board an image for the selected SoC.
The additional element (5) is at best mere instructions to “apply” the abstract ideas, which cannot provide an inventive concept. Therefore, the additional element does not meaningfully limit the claim because employing generic computer functions to execute an abstract idea, even when limiting the use of the abstract idea to one particular field of use or technological environment, does not add significantly more.
Thus, taken alone, the additional elements do not amount to significantly more than the above-identified judicial exception (the abstract idea). Looking at the additional elements as a combination adds nothing that is not already present when looking at the additional elements taken individually. Even when considered in combination, the additional elements represent insignificant extra-solution activities and a field of use or technological environment and therefore do not provide an inventive concept. The claim is not patent eligible.
Claim Interpretation: Under the broadest reasonable interpretation (BRI), the limitations of Claim 17 are presumed to have their plain meaning consistent with the specification as it would be interpreted by one of ordinary skill in the art. See MPEP § 2111.
Step 1: Claim 17 is directed to an apparatus comprising: a computing device. However, a computing device (e.g. a software module or virtual machine) can be construed to cover a transitory form of signal transmission (often referred to as “software per se”) and thus, the claim does not fall within one of the statutory categories of invention. However, the claim can be amended to fall within one of the statutory categories of invention.
Step 2A, Prong One: Claim 17 recites the limitations:
(a) selecting, based on at least some of the plurality of scripts and from a plurality of System-on-a-Chip (SoC) configurations, an SoC configuration configured to build an image;
These recited steps, under the broadest reasonable interpretation (BRI), cover performance of the steps in the human mind alone or with the aid of pen and paper. That is, other than reciting:
(1) . An apparatus comprising: a computing device
Nothing in the claim precludes the steps from practically being performed in the human mind alone using observation, evaluation, judgment, and opinion or with the aid of pen and paper. For example, the limitation (a) in the context of the claim encompasses a human selecting an SOC configuration configured to build an image in the human mind alone using observation, evaluation, judgment, and opinion or with the aid of pen and paper to select an SOC configuration configured to build an image. See MPEP § 2106.04(a)(2)(III).
If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the human mind alone or with the aid of pen and paper but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
Step 2A, Prong Two: This judicial exception is not integrated into a practical application in particular, the claim recites the additional elements:
(1) . An apparatus comprising: a computing device
The additional elements are recited at a high level of generality such that it amounts to no more than a mere instructions to apply the judicial exception using generic computer/computing components. The processor and memory are used as a tool to perform the selecting, receiving, transmitting, construction steps of the claim.
Also, the claim recites the additional element:
(2) receiving a plurality of scripts;
(3) receiving a custom configuration script file corresponding to the selected SoC configuration;
(4) transmitting the custom configuration script file to at least one hardware board of a plurality of hardware boards, wherein the at least one hardware board is compatible with the custom configuration script file;
The additional elements (2) to (4) are mere data gathering/transmitting/outputting recited at a high level of generality and thus, are insignificant extra-solution activities. See MPEP § 2106.05(g). Furthermore, all uses of the recited judicial exception require such data gathering/transmitting/outputting, and, as such, the additional elements do not impose any meaningful limits on the claim. The additional elements amount to necessary data gathering/transmitting/outputting. See MPEP § 2106.05(g).
Also, the claim recites the additional element:
(5) constructing, an environment generated based on the at least one hardware board an image for the selected SoC.
The additional element (5) merely indicates a field of use or technological environment in which the judicial exception is performed. Although the additional element (5) limits the identified judicial exceptions (a) and (b), however, this type of limitation merely confines the use of the abstract idea to a particular field of use or technological environment (constructing, an environment generated based on the at least one hardware board an image for the selected SoC.) and thus, fails to add an inventive concept to the claims. See MPEP § 2106.05(h).
Accordingly, even when viewed in combination, the additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea.
Step 2B: The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception because the additional elements when considered both individually and as a combination do not amount to significantly more than the abstract idea. As discussed above with respect to integration of the abstract idea into a practical application, the claim recites the additional elements:
(1) . An apparatus comprising: a computing device
The additional element (1) amounts to no more than mere instructions to apply the judicial exception using generic computer components. The analysis under Step 2A, Prong Two is carried through to Step 2B. The use of a computer or other machinery in its ordinary capacity does not integrate a judicial exception into a practical application or provide significantly more.
Also, the claim recites the additional element:
(2) receiving a plurality of scripts;
(3) receiving a custom configuration script file corresponding to the selected SoC configuration;
(4) transmitting the custom configuration script file to at least one hardware board of a plurality of hardware boards, wherein the at least one hardware board is compatible with the custom configuration script file;
The additional elements (2) to (4) simply append well-understood, routine, and conventional activities previously known to the industry, specified at a high level of generality, to the judicial exception is not indicative of an inventive concept. MPEP § 2106.05(d)(II) expressly states that the courts have recognized the computer function of receiving or transmitting data over a network, e.g., using the Internet to gather data as a well‐understood, routine, and conventional computer function when it is claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activities. Thus, a person of ordinary skill in the art would readily comprehend that it is well-understood, routine, and conventional in the computing art to receive scripts, receive configuration script files, and transmit configuration script file. Therefore, the limitations remain insignificant extra-solution activities even upon reconsideration and do not amount to significantly more.
Also the claim recites the additional element:
(5) constructing, an environment generated based on the at least one hardware board an image for the selected SoC.
The additional element (5) is at best mere instructions to “apply” the abstract ideas, which cannot provide an inventive concept. Therefore, the additional element does not meaningfully limit the claim because employing generic computer functions to execute an abstract idea, even when limiting the use of the abstract idea to one particular field of use or technological environment, does not add significantly more.
Thus, taken alone, the additional elements do not amount to significantly more than the above-identified judicial exception (the abstract idea). Looking at the additional elements as a combination adds nothing that is not already present when looking at the additional elements taken individually. Even when considered in combination, the additional elements represent insignificant extra-solution activities and a field of use or technological environment and therefore do not provide an inventive concept. The claim is not patent eligible.
Claims 2, 10, and 18 recite additional elements that do not integrate the abstract idea into a practical application. The claims recite the additional element “wherein the image of the selected SoC incorporates essential elements of the selected SoC” which indicates a field of use or technological environment in which the judicial exception is performed (See MPEP 2106.05(h)). Accordingly, the additional elements recited in the claims do not integrate the abstract idea into a practical application because it does not impose any meaningful limits upon practicing the abstract idea.
The claims recite an additional element that does not amount to significantly more than the abstract idea. The claims recite the additional element “wherein the image of the selected SoC incorporates essential elements of the selected SoC” which indicates a field of use or technological environment in which the judicial exception is performed (See MPEP 2106.05(h)). Accordingly, the additional elements cannot provide an inventive concept nor amount to significantly more. The claims are not patent eligible.
Claims 3, 11, and 19 recite additional elements that do not integrate the abstract idea into a practical application. The claims recite the additional element “wherein the essential elements include at least a bootloader, a kernel, an open-source package, and a specialized board-specific package” which is recited at a high level of generality such that it amounts to no more than a mere generic computer/computing component to apply the abstract idea (See MPEP 2106.05 (f)). Accordingly, the additional elements recited in the claims do not integrate the abstract idea into a practical application because it does not impose any meaningful limits upon practicing the abstract idea.
The claims recite an additional element that does not amount to significantly more than the abstract idea. The claims recite the additional element “wherein the essential elements include at least a bootloader, a kernel, an open-source package, and a specialized board-specific package.” which is recited at a high level of generality such that it amounts to no more than a mere generic computer/computing component to apply the abstract idea (See MPEP 2106.05(f)). Accordingly, the additional elements cannot provide an inventive concept nor amount to significantly more. The claims are not patent eligible.
Claims 4, 12, and 20 recite additional elements that do not integrate the abstract idea into a practical application. The claims recite the additional element “wherein the custom configuration script file indicates the essential elements of the selected SoC.” which is recited at a high level of generality such that it amounts to no more than a mere generic computer/computing component to apply the abstract idea (See MPEP 2106.05 (f)). Accordingly, the additional elements recited in the claims do not integrate the abstract idea into a practical application because it does not impose any meaningful limits upon practicing the abstract idea.
The claims recite an additional element that does not amount to significantly more than the abstract idea. The claims recite the additional element “wherein the custom configuration script file indicates the essential elements of the selected SoC” which is recited at a high level of generality such that it amounts to no more than a mere generic computer/computing component to apply the abstract idea (See MPEP 2106.05(f)). Accordingly, the additional elements cannot provide an inventive concept nor amount to significantly more. The claims are not patent eligible.
Claims 5 and 13 recite an additional limitation “wherein the custom configuration script is generated” which is a process, under its broadest reasonable interpretation, that can be practically performed by the human mind thorough observation, evaluation, judgement, and/or opinion with the aid of pen and paper. Thus, the limitation falls under the “Mental Processes” grouping of abstract ideas.
The claims recite an additional element that does not integrate the judicial exception into a practical application. The claims recite the additional element “based on a modified recipe associated with the at least one hardware board” which is recited at a high level of generality such that it amounts to no more than a mere generic computer/computing component to apply the abstract idea (See MPEP 2106.05 (f)). Accordingly, the additional elements recited in the claims do not integrate the abstract idea into a practical application because it does not impose any meaningful limits upon practicing the abstract idea.
The claims recite an additional element that does not amount to significantly more than the abstract idea. The claims recite the additional element “based on a modified recipe associated with the at least one hardware board” which is recited at a high level of generality such that it amounts to no more than a mere generic computer/computing component to apply the abstract idea (See MPEP 2106.05(f)). Accordingly, the additional elements cannot provide an inventive concept nor amount to significantly more. The claims are not patent eligible.
Claims 6 and 14 recite an additional element that does not integrate the judicial exception into a practical application. The claims recite the additional element “wherein the custom configuration script file is received from an open baseboard management controller” which is directed to the insignificant extra solution activity of mere data gathering recited at a high level of generality (See MPEP 2106.05(g)). Accordingly, the additional elements recited in the claims do not integrate the abstract idea into a practical application because it does not impose any meaningful limits upon practicing the abstract idea.
The claims recite an additional element that does not amount to significantly more than the abstract idea. The claims recite the additional element “wherein the custom configuration script file is received from an open baseboard management controller” which has been determined as a well-known, routine, and/or conventional activity of receiving or transmitting data over a network (See MPEP 2106.05(d)(II)). Accordingly, the additional elements cannot provide an inventive concept nor amount to significantly more. The claims are not patent eligible.
Claims 7 and 15 recite an additional element that does not integrate the judicial exception into a practical application. The claims recite the additional element “further comprising deploying the image onto the at least one hardware board” which is directed to the insignificant extra solution activity of mere data transmitting recited at a high level of generality (See MPEP 2106.05(g)). Accordingly, the additional elements recited in the claims do not integrate the abstract idea into a practical application because it does not impose any meaningful limits upon practicing the abstract idea.
The claims recite an additional element that does not amount to significantly more than the abstract idea. The claims recite the additional element “further comprising deploying the image onto the at least one hardware board” which has been determined as a well-known, routine, and/or conventional activity of receiving or transmitting data over a network (See MPEP 2106.05(d)(II)). Accordingly, the additional elements cannot provide an inventive concept nor amount to significantly more. The claims are not patent eligible.
Claims 8 and 16 recite an additional element that does not integrate the judicial exception into a practical application. The claims recite the additional element “further comprising, flashing the image on to the selected SoC” which is directed to the insignificant extra solution activity of mere data transmitting recited at a high level of generality (See MPEP 2106.05(g)). Accordingly, the additional elements recited in the claims do not integrate the abstract idea into a practical application because it does not impose any meaningful limits upon practicing the abstract idea.
The claims recite an additional element that does not amount to significantly more than the abstract idea. The claims recite the additional element “further comprising, flashing the image on to the selected SoC” which has been determined as a well-known, routine, and/or conventional activity of receiving or transmitting data over a network (See MPEP 2106.05(d)(II)). Accordingly, the additional elements cannot provide an inventive concept nor amount to significantly more. The claims are not patent eligible.
Claims 17-20 rejected under 35 U.S.C. 101 because the claimed invention is directed to non-statutory subject matter. Claims 17-20 are not within at least one of the four categories of patent eligible subject matter because the claims are directed to “an apparatus comprising: a computing device.” An apparatus comprising: a computing device is interpreted, under its broadest reasonable interpretation, to cover products that have no physical or tangible form or a computer program (otherwise known as “software per se”).
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.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1, 2, 4, and 9-10 are rejected under 35 U.S.C. 103 as being unpatentable over US 20030121024 A1 hereinafter “Hill” in view of US 20230259474 A1 hereinafter “Le Corre”.
With regards to claim 1, Hill teaches A method comprising:
receiving a plurality of scripts;
selecting, based on at least some of the plurality of scripts [and from a plurality of System-on-a-Chip (SoC) configurations,] an [SoC] configuration configured to build an image; (Hill [0027-28], “The architecture of the invention is based on an important concept of "componentization"--the run-time image is constructed using software program "components" as building blocks. The term "component" as used in the architecture of the invention means a discrete packet of functionality that can be included in the final run-time image. For example, for an operating system, the components 72 may include Web browsers, transport protocol drivers, device drivers, etc…The componentization concept of the invention presents a new paradigm for the development of future operating systems. In this paradigm, the development of an operating system starts with providing a collection of operating system components [receiving a plurality of scripts], which may be newly developed or taken from existing operating systems. A subset of the available components is then selected based on the functions they provide and the functions to be supported by the target run-time image [selecting, based on at least some of the plurality of scripts]. The selected components are then combined in a "build" process to generate an operating system run-time image [a configuration configured to build an image].”) [Examiner’s Note: As described in paragraph [0008, each component requires a script that is invoked to build the component and its properties into a run-time image/configuration]
Hill teaches selecting, based on at least some of the plurality of a configuration configured to build an image but does not teach: and from a plurality of System-on-a-Chip (SoC) configurations, an SoC configuration
receiving a custom configuration script file corresponding to the selected SoC configuration;
transmitting the custom configuration script file to at least one hardware board of a plurality of hardware boards wherein the at least one hardware board is compatible with the custom configuration script file; and
constructing, an environment generated based on the at least one hardware board an image for the selected SoC.
However, in an analogous art Le Corre teaches and from a plurality of System-on-a-Chip (SoC) configurations, an SoC configuration (Le Corre [0159], “A computer architecture and a method for utilizing a graphical user interface, such as those described above with respect to FIGS. 1-11, may be arranged to enable a user to select specific parameters of one or more SoC peripherals and to generate settings code and other content to configure the SoC in accordance with the user-selected peripherals and parameters. The code and content may also include instructions to assist the user in making any physical changes to the SoC consistent with the desired configuration (e.g., jumper setting instructions, such as configuring a UART to 115200 bauds with RX pin on GPIO A0 and TX pin on GPIO A1, pad to bond information, etc).”)
receiving a custom configuration script file corresponding to the selected SoC configuration; (Le Corre [0072-75], “In yet other embodiments, a single settings structure 224 may be generated for multiple selected configuration components 204. Moreover, multiple settings structures 224 can be generated for multiple selected configuration components 204. In some embodiments, these settings structures 224 may be stored as JSON files [receiving a custom configuration script file] … In various embodiments, the global map or settings registry 222 may comprise a JSON object with a set of accessors (API) to the components, templates, and parameter values selected by the user. In some embodiments, the global map or settings registry 222 may be a concatenation of all the settings for each configurable component 224. In other embodiments, the global map or settings registry 222 may be updated directly from the user's selections without using or accessing the settings for each configurable component 224 … As discussed in more detail below, the host computing device, such as host computing device 150 in FIG. 1, utilizes the global map or settings registry 222, along with the selected configurable components 204 and any selected ready-to-go components 220, to generate content that is provided to and used by the programmable computing device to implement, control, or configure one or more software aspects of the programmable computing device, one or more hardware aspects of the programmable computing device, or both [corresponding to the selected SoC configuration].”)
transmitting the custom configuration script file to at least one hardware board of a plurality of hardware boards (Le Corre [0095-98], “Although FIG. 3 shows the global map or settings registry being updated based on the settings structures being generated from the user's selections, embodiments are not so limited. In some embodiments, the global map or settings registry may be updated in real time as the user selects components, parameters, or templates. Accordingly, in some embodiments, the use of settings structures may be optional. In some embodiments, an image of the user selection may be maintained in the JSON files … The global map or settings registry 222 may operate as a consolidated database of values that can be used to generate the content from the user-selected templates and user-selected components. This content may be, for example, plain code (e.g., C code) that is used by the programmable computing device to initialize, configure, or control a software or hardware aspect of the programmable computing device 108. Accordingly, the generated content may be initialization code, application code, configuration code, a device tree blob (a hardware description interpreted at runtime), etc. The content may also be other settings, parameters, or other information that initializes, configures, or controls a software or hardware aspect of the programmable computing device. ”), wherein the at least one hardware board is compatible with the custom configuration script file; (Le Corre [0068-69], “ The global map or settings registry 222 is an in-memory object centralizing all the user selections and settings that are generated via the user's selection of configurable components 204, parameters, and templates. The global map or settings registry in-memory object also may be stored and synchronized with a file to facilitate its persistence [with the custom configuration script file]. By extension, the global map or settings registry 222 also may refer to a software component providing a dictionary, getters/setters, or services to compute or re-compute content for a programmable computing device based on expressions or dependencies. Overall, the global map or settings registry 222 is a dictionary or database memorizing software components settings and hardware platform settings of the programmable computing device. In some embodiments, separate global maps or settings registries may be generated for various software and hardware aspects of the programmable computing device [wherein the at least one hardware board is compatible].”) [Examiner’s Note: Le Corre teaches a global settings registry that can be conveyed as a Java Script Object Notation file in a database that can be received by a hardware board/hardware aspect of a programmable computing device/SOC as part of the configuration process/generated content.] and
constructing, an environment generated based on the at least one hardware board an image for the selected SoC. (Le Corre [0121-122], “With reference to FIGS. 1 and 2, the programmable computing device 108 may comprise a microcontroller (MCU) or microprocessor (MPU), which may include one or more SoCs. The SoCs may include one or processors, and the processors may have one or more processing cores. See processors 110a, 110b, and processing cores 114a to 114n and 114x of FIG. 1. The processing cores of a processor may comprise, for example, a CPU, a floating-point unit, etc. The processing cores need to be configured, including configuring the process of starting up the programmable computing device 108, which may be referred to as the programmable computing device's 108 boot sequence [based on the at least one hardware board] … A SoC may have several processors, and each processor may have several cores, such as described above with reference to FIG. 1. The cores may employ virtualization, such as trusted/non-trusted worlds in ARM TrustZone technology. The SoC may be organized into trusted and non-trusted worlds (e.g., in an execution context a processor core in trusted world may be able to utilize resources in the trusted world of which it is a member, while those resources would not be available to processing cores outside the trusted world). A hardware execution unit or circuit of a SoC may be a core or a virtualization container (such as a trusted world) within a core of a given hardware platform and may execute a binary program [an image for the selected SoC.]. The binary program may have an association with an execution context of a software project. If a processor has multiple cores, some of these might work in a synchronized manner, and may be considered as forming a single hardware execution unit. An execution domain may be viewed as a container aggregating a hardware execution unit and the platform resources (e.g., internal and external memories, peripherals, etc.) that may be used exclusively to implement a software project. A shared domain may be viewed as a container for shared hardware platform resources, available several execution domains [constructing, an environment generated].”)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the teachings of Le Corre into the teachings of Hill. This combination of teachings would have resulted in a method configured to receive configuration scripts to build an image, as in Hill, wherein a configuration script can correspond to a selected SOC configuration and environment, as in Le Corre. One of ordinary skill in the art would have been motivated to combine these teachings for the purpose of selecting various configurations of state transitions for a programmable computing device to define structure and initiate one or more projects (Le Corre [0199-200]).
With regards to claim 2 the rejection of claim 1 is incorporated.
Hill does not teach: wherein the image of the selected SoC incorporates essential elements of the selected SoC
However, in an analogous art Le Corre teaches wherein the image of the selected SoC incorporates essential elements of the selected SoC (Le Corre [0211-212], “The content may comprise plain code (e.g., C code) that is used by the programmable computing device to initialize, configure, or control a software or hardware aspect of the programmable computing device to set the user-selected states when enabled and the transitions from one state to another when requested. Accordingly, the generated content may be initialization code, application code, configuration code, etc. The content may also be other settings, parameters, or other information that initializes, configures, documents, or controls a software or hardware aspect of the programmable computing device [incorporates essential elements of the selected SoC]. In various embodiments, the global map or settings registry, as described above, may be utilized to generate the content … This binary image is the information usable by the programmable computing device to initialize, configure, or control its hardware, software, or a combination thereof to support the system states and transitions as employed by the programmable computing device. In some embodiments, all generated content is utilized to build the binary image for the project [wherein the image of the selected SoC]. In other embodiments, a portion, but not all of the generated content is utilized to build the binary image for the project.”)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the teachings of Le Corre into the teachings of Hill. This combination of teachings would have resulted in a method configured to receive configuration scripts to build an image, as in Hill, wherein a configuration script can correspond to a selected SOC configuration and environment, as in Le Corre. One of ordinary skill in the art would have been motivated to combine these teachings for the purpose of selecting various configurations of state transitions for a programmable computing device to define structure and initiate one or more projects (Le Corre [0199-200]).
With regards to claim 4, the rejection of claim 2 is incorporated.
Hill does not teach: wherein the custom configuration script file indicates the essential elements of the selected SoC.
However, in an analogous art Le Corre teaches wherein the custom configuration script file indicates the essential elements of the selected SoC. (Le Corre [0095-98], “The global map or settings registry may be arranged such that the user-selected values are literals that can be written directly in the hardware unit registers by the driver software of the programmable computing device. In various embodiments, the global map or settings registry may also retain whatever is used to update the result of the expressions, formulas, or dependencies based on the user's selections. In this way, when a value is updated, such as changed by a user via the graphical user interface, all related values are updated accordingly in the global map or settings registry … In some embodiments, an image of the user selection may be maintained in the JSON files [wherein the custom configuration script file] … The content may also be other settings, parameters, or other information that initializes, configures, or controls a software or hardware aspect of the programmable computing device. The content may also comprise associated documentation [indicates the essential elements of the selected SoC].”)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the teachings of Le Corre into the teachings of Hill. This combination of teachings would have resulted in a method configured to receive configuration scripts to build an image, as in Hill, wherein a configuration script can correspond to a selected SOC configuration and environment, as in Le Corre. One of ordinary skill in the art would have been motivated to combine these teachings for the purpose of selecting various configurations of state transitions for a programmable computing device to define structure and initiate one or more projects (Le Corre [0199-200]).
Claims 9-10 are directed to a system comprising: a processor; and a memory including instructions (Hill FIG. 1) that correspond to the method limitations as disclosed in claims 1-2. Thus, claims 9-10 are rejected for the same reasons set forth in claims 9-10.
Claims 3 and 11-12 are rejected under 35 U.S.C. 103 as being unpatentable over Hill in view of Le Corre as applied to claims 2, 10, and 17 above, and further in view of US 20240248696 A1 hereinafter “Gupta” in view of US 20250077239 A1 hereinafter “Shah”.
With regards to claim 3, the rejection of claim 2 is incorporated.
The combination of Hill and Le Corre does not teach: wherein the essential elements include at least a bootloader, a kernel, an open-source package, and a specialized board-specific package.
However, in an analogous art Gupta teaches wherein the essential elements include at least a bootloader, a kernel, [an open-source package,] and a specialized board-specific package. (Gupta [0036], “FIG. 3(B) is a diagram 350 illustrating layers of components that can be included in the BMC firmware image 106 by the image builder 340. In general, the BMC firmware image 106 includes a layer 1 components 370-1, which form the base BMC firmware. More specifically, the layer 1 components 370-1 may contain a bootloader, a kernel, device drivers, a root file system, a board support package (BSP), and components supporting essential or standard BMC functionalities such as IPMI [wherein the essential elements include at least a bootloader, a kernel, an open-source package, and a specialized board-specific package]. The layer 1 components 370-1 may also contain an application installation component 372. As described infra, when the BMC 102 is running the system provided by the BMC firmware image 106, the application installation component 372 can retrieve additional components from a cloud system and install the retrieved component on the BMC 102.”)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the teachings of Gupta into the teachings of Hill in view of Le Corre. This combination of teachings would have resulted in a method configured to receive configuration scripts to build an image, as in Hill, wherein a configuration script can correspond to a selected SOC configuration and environment, as in Le Corre, wherein the script describes the elements essential for the baseboard management controller to the configure the system on chip via an image builder, as in Gupta. One of ordinary skill in the art would have been motivated to combine these teachings for the purpose of building a customized BMC firmware image in accordance to a specification with the relevant code or binaries (Gupta [0049]).
The combination of Hill, Le Corre, and Gupta teaches wherein the essential elements include at least a bootloader, a kernel … and a specialized board-specific package but does not teach an open source package
However, in an analogous art Shah teaches an open source package (Shah [0162], “The compiler 914 translates the applications 902 developed with commonly used open-source packages such as Keras and PyTorch into reconfigurable processor specifications. The compiler 914 generates the configuration files 924 with configuration data for the placed positions and the routed data and control networks. The configuration data can include an initial value for the arguments as well. In one implementation, this includes assigning coordinates and communication resources of the physical memory and compute units by placing and routing units onto the array of the processor while maximizing bandwidth and minimizing latency.”)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the teachings of Shah into the teachings of Hill in view of Le Corre and further in view of Gupta. This combination of teachings would have resulted in a method configured to receive configuration scripts to build an image, as in Hill, wherein a configuration script can correspond to a selected SOC configuration and environment, as in Le Corre, wherein the script describes the elements essential for the baseboard management controller to the configure the system on chip via an image builder, as in Gupta, wherein the essential elements to configure a system on chip includes an open-source package, as in Shah. One of ordinary skill in the art would have been motivated to combine these teachings for the purpose of using various components of the system repository wherein files are associated with selected components and incorporated into the runtime image during the build process (Shah [0036-39]).
Claim 11 is directed to a system corresponding to the method limitations as disclosed in claim 3. Thus, claim 11 is rejected for the same reasons set forth in claim 3.
With regards to claim 12, the rejection of claim 11 is incorporated.
Hill does not teach: wherein the custom configuration script file indicates the essential elements of the selected SoC.
However, in an analogous art Le Corre teaches wherein the custom configuration script file indicates the essential elements of the selected SoC. (Le Corre [0095-98], “The global map or settings registry may be arranged such that the user-selected values are literals that can be written directly in the hardware unit registers by the driver software of the programmable computing device. In various embodiments, the global map or settings registry may also retain whatever is used to update the result of the expressions, formulas, or dependencies based on the user's selections. In this way, when a value is updated, such as changed by a user via the graphical user interface, all related values are updated accordingly in the global map or settings registry … In some embodiments, an image of the user selection may be maintained in the JSON files [wherein the custom configuration script file] … The content may also be other settings, parameters, or other information that initializes, configures, or controls a software or hardware aspect of the programmable computing device. The content may also comprise associated documentation [indicates the essential elements of the selected SoC].”)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the teachings of Le Corre into the teachings of Hill in view of Gupta in view of Shah. This combination of teachings would have resulted in a method configured to receive configuration scripts to build an image, as in Hill, wherein a configuration script can correspond to a selected SOC configuration and environment, as in Le Corre, wherein the script describes the elements essential for the baseboard management controller to the configure the system on chip via an image builder, as in Gupta, wherein the essential elements to configure a system on chip includes an open-source package, as in Shah. One of ordinary skill in the art would have been motivated to combine these teachings for the purpose of selecting various configurations of state transitions for a programmable computing device to define structure and initiate one or more projects (Le Corre [0199-200]).
Claims 5 and 13 are rejected under 35 U.S.C. 103 as being unpatentable over Hill in view of Le Corre as applied to claims 1 and 9 above, and further in view of US 11029973 B1 hereinafter “Teng”.
With regards to claim 5, the rejection of claim 1 is incorporated.
The combination of Hill and Le Corre does not teach: wherein the custom configuration script is generated based on a modified recipe associated with the at least one hardware board.
However, in an analogous art Teng teaches wherein the custom configuration script is generated based on a modified recipe associated with the at least one hardware board. (Teng Column 5 Lines 15-39, “The retrieved configuration software can be stored in non-volatile memory that is directly or indirectly accessible by the management controller 540. For example, the configuration software can be software modules that are stored in firmware 552 and/or firmware 572 [based on a modified recipe]. The firmware 552 and 572 can be used to control one or more components integrated with or controlled by the motherboard (such as components of the chassis 520). The firmware 572 can be used to program the configuration logic 530 [wherein the custom configuration script] … The management controller 540 can receive instructions from the NIC 560 or the receiver 544 as to how to program the input signal 532 [associated with the at least one hardware board]. Alternatively, the management controller 540 can have non-volatile configuration instructions stored in the memory 550 that are available automatically upon start-up. The input signal 532 can be as simple as a single bit that is either set or cleared. Alternatively, multiple bits can be used. Nonetheless, using the input signal 532, the management controller 540 can control configuration of processors 570, 571 via the configuration logic 530.”) [Examiner’s Note: A configuration script can consist of configuration logic for the management controller to configure dependent processors and programmable components/SOCs].
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the teachings of Teng into the teachings of Hill in view of Le Corre. would have resulted in a method configured to receive configuration scripts to build an image, as in Hill, wherein a configuration script can correspond to a selected SOC configuration and environment, as in Le Corre, wherein the configuration of target processors are dependent upon the configuration logic of the management controller, as in Teng. One of ordinary skill in the art would have been motivated to combine these teachings for the purpose of a baseboard management controller to use configuration logic to generate input signals into programmable logic devices and configure the device thereof (Teng Columns 3-4 Lines 42-67 and 1-4).
Claim 13 is directed to a system corresponding to the method limitations as disclosed in claim 5. Thus, claim 13 is rejected for the same reasons set forth in claim 5.
Claims 6-8, 14-18 are rejected under 35 U.S.C. 103 as being unpatentable over Hill in view of Le Corre as applied to claims 1 and 9 above, and further in view of US 20250117205 A1 hereinafter “Minnich”.
With regards to claim 6, the rejection of claim 1 is incorporated.
The combination of Hill and Le Corre does not teach: wherein the custom configuration script file is received from an open baseboard management controller.
However, in an analogous art Minnich teaches wherein the custom configuration script file is received from an open baseboard management controller. (Minnich [0057], “The subordinate SoC is not configured as a QSPI host, but is configured as a QSPI target. Unlike conventional SoCs (e.g., standalone SoCs), the subordinate SoC is configured for high-performance computing. The subordinate SoC, or high-performance computing SoC, depends on a trusted component (e.g., an update controller, the BMC). For subordinate SoCs, SoC code is controlled (e.g., entirely controlled) by the BMC, or the trusted component (e.g., the central trusted component) of a given system. Based on the techniques described herein, the QSPI interface is configured with a broadcast mode that enables communication with up to 64 targets (e.g., 64 daisy chained SoC nodes). For example, the present techniques configure the SPI/QSPI interface in a manner that provides a broadcast mode for distributing trusted code. Thus, the present techniques enable the BMC to write software code to up to 64 targets (e.g., write firmware to 64 SoC nodes concurrently or simultaneously). In an example system with 64 SoCs, the cost of the system is reduced based on the removal of 64 read-only memories (ROMs) and 64 Silicon Roots of Trust (SRoTs) that would otherwise be associated with each SoC based on conventional approaches.”)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the teachings of Minnich into the teachings of Hill in view of Le Corre. This combination of teachings would have resulted in a method configured to receive configuration scripts to build an image, as in Hill, wherein a configuration script can correspond to a selected SOC configuration and environment, as in Le Corre, and updating code using a baseboard management controller, as in Minnich. One of ordinary skill in the art would have been motivated to combine these teachings for the purpose of distributing trusted code images to one or more target system on chips that are communicatively connected as targets for updates (Minnich [0093-94]).
With regards to claim 7, the rejection of claim 1 is incorporated.
The combination of Hill and Le Corre does not teach: further comprising deploying the image onto the at least one hardware board.
However, in an analogous art Minnich teaches further comprising deploying the image onto the at least one hardware board. (Minnich [0081], “In some cases, SoC 505 is released from reset based on a communication received from a trusted component (e.g., update controller 140 of FIG. 1, update controller 230 of FIG. 2). For example, SoC 505 may be released from reset based on receiving a communication from a BMC indicating the memory 520 has received a trusted code image. In some cases, SoC 505 monitors memory 520 and releases itself from reset when SoC 505 determines memory 520 has received the executable code (e.g., finished receiving the trusted code image from the trusted component). Mask ROM 510 may include a first program executed by SoC 505 after a Power-On/Reset. Thus, when SoC 505 is released from reset, mask ROM 510 initiates execution of the code in memory 520 via a processor of SoC 505.”)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the teachings of Minnich into the teachings of Hill in view of Le Corre. This combination of teachings would have resulted in a method configured to receive configuration scripts to build an image, as in Hill, wherein a configuration script can correspond to a selected SOC configuration and environment, as in Le Corre, and updating code using a baseboard management controller, as in Minnich. One of ordinary skill in the art would have been motivated to combine these teachings for the purpose of distributing trusted code images to one or more target system on chips that are communicatively connected as targets for updates (Minnich [0093-94]).
With regards to claim 8, the rejection of claim 7 is incorporated.
The combination of Hill and Le Corre does not teach: further comprising, flashing the image on to the selected SoC.
However, in an analogous art Minnich teaches further comprising, flashing the image on to the selected SoC. (Minnich [0086], “As shown, memory 635, via target 640, connects to communication interface 620 as a writeable target. This enables BMC SoC 610 to write to memory 635 (e.g., to the on-chip memory of SoC 605). Thus, a trusted code image (e.g., a single central trusted code image) may be distributed by BMC SoC 610 to one or more SoCs (e.g., to multiple SoCs simultaneously or concurrently, including SoC 605) based on the one or more SoCs being configured as subordinate SoCs (e.g., as QSPI targets with on-chip memory connected to BMC SoC 610 via a QSPI bus).”) [Examiner’s Note: Writing to the memory of a system on chip means to flash the image onto the system on chip.]
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the teachings of Minnich into the teachings of Hill in view of Le Corre. This combination of teachings would have resulted in a method configured to receive configuration scripts to build an image, as in Hill, wherein a configuration script can correspond to a selected SOC configuration and environment, as in Le Corre, and updating code using a baseboard management controller, as in Minnich. One of ordinary skill in the art would have been motivated to combine these teachings for the purpose of distributing trusted code images to one or more target system on chips that are communicatively connected as targets for updates (Minnich [0093-94]).
Claims 14-16 are directed to a system corresponding to the method limitations as disclosed in claims 6-8 respectively. Thus, claims 14-16 are rejected for the same reasons set forth in claims 6-8.
Claims 17-18 are rejected under 35 U.S.C. 103 as being unpatentable over Hill in view of Le Corre and further in view of Minnich.
With regards to claim 17, Hill teaches
An apparatus comprising: a computing device configured to: (Hill Fig. 1)
receiving a plurality of scripts;
selecting, based on at least some of the plurality of scripts [and from a plurality of System-on-a-Chip (SoC) configurations,] an [SoC] configuration configured to build an image; (Hill [0027-28], “The architecture of the invention is based on an important concept of "componentization"--the run-time image is constructed using software program "components" as building blocks. The term "component" as used in the architecture of the invention means a discrete packet of functionality that can be included in the final run-time image. For example, for an operating system, the components 72 may include Web browsers, transport protocol drivers, device drivers, etc…The componentization concept of the invention presents a new paradigm for the development of future operating systems. In this paradigm, the development of an operating system starts with providing a collection of operating system components [receiving a plurality of scripts], which may be newly developed or taken from existing operating systems. A subset of the available components is then selected based on the functions they provide and the functions to be supported by the target run-time image [selecting, based on at least some of the plurality of scripts]. The selected components are then combined in a "build" process to generate an operating system run-time image [a configuration configured to build an image].”) [Examiner’s Note: As described in paragraph [0008, each component requires a script that is invoked to build the component and its properties into a run-time image/configuration]
Hill teaches selecting, based on at least some of the plurality of a configuration configured to build an image but does not teach: and from a plurality of System-on-a-Chip (SoC) configurations, an SoC configuration
receiving a custom configuration script file corresponding to the selected SoC configuration;
transmitting the custom configuration script file to at least one hardware board of a plurality of hardware boards wherein the at least one hardware board is compatible with the custom configuration script file; and
constructing, an environment generated based on the at least one hardware board an image for the selected SoC.
However, in an analogous art Le Corre teaches and from a plurality of System-on-a-Chip (SoC) configurations, an SoC configuration (Le Corre [0159], “A computer architecture and a method for utilizing a graphical user interface, such as those described above with respect to FIGS. 1-11, may be arranged to enable a user to select specific parameters of one or more SoC peripherals and to generate settings code and other content to configure the SoC in accordance with the user-selected peripherals and parameters. The code and content may also include instructions to assist the user in making any physical changes to the SoC consistent with the desired configuration (e.g., jumper setting instructions, such as configuring a UART to 115200 bauds with RX pin on GPIO A0 and TX pin on GPIO A1, pad to bond information, etc).”)
receiving a custom configuration script file corresponding to the selected SoC configuration; (Le Corre [0072-75], “In yet other embodiments, a single settings structure 224 may be generated for multiple selected configuration components 204. Moreover, multiple settings structures 224 can be generated for multiple selected configuration components 204. In some embodiments, these settings structures 224 may be stored as JSON files [receiving a custom configuration script file] … In various embodiments, the global map or settings registry 222 may comprise a JSON object with a set of accessors (API) to the components, templates, and parameter values selected by the user. In some embodiments, the global map or settings registry 222 may be a concatenation of all the settings for each configurable component 224. In other embodiments, the global map or settings registry 222 may be updated directly from the user's selections without using or accessing the settings for each configurable component 224 … As discussed in more detail below, the host computing device, such as host computing device 150 in FIG. 1, utilizes the global map or settings registry 222, along with the selected configurable components 204 and any selected ready-to-go components 220, to generate content that is provided to and used by the programmable computing device to implement, control, or configure one or more software aspects of the programmable computing device, one or more hardware aspects of the programmable computing device, or both [corresponding to the selected SoC configuration].”)
transmitting the custom configuration script file to at least one hardware board of a plurality of hardware boards (Le Corre [0095-98], “Although FIG. 3 shows the global map or settings registry being updated based on the settings structures being generated from the user's selections, embodiments are not so limited. In some embodiments, the global map or settings registry may be updated in real time as the user selects components, parameters, or templates. Accordingly, in some embodiments, the use of settings structures may be optional. In some embodiments, an image of the user selection may be maintained in the JSON files … The global map or settings registry 222 may operate as a consolidated database of values that can be used to generate the content from the user-selected templates and user-selected components. This content may be, for example, plain code (e.g., C code) that is used by the programmable computing device to initialize, configure, or control a software or hardware aspect of the programmable computing device 108. Accordingly, the generated content may be initialization code, application code, configuration code, a device tree blob (a hardware description interpreted at runtime), etc. The content may also be other settings, parameters, or other information that initializes, configures, or controls a software or hardware aspect of the programmable computing device. ”), wherein the at least one hardware board is compatible with the custom configuration script file; (Le Corre [0068-69], “ The global map or settings registry 222 is an in-memory object centralizing all the user selections and settings that are generated via the user's selection of configurable components 204, parameters, and templates. The global map or settings registry in-memory object also may be stored and synchronized with a file to facilitate its persistence [with the custom configuration script file]. By extension, the global map or settings registry 222 also may refer to a software component providing a dictionary, getters/setters, or services to compute or re-compute content for a programmable computing device based on expressions or dependencies. Overall, the global map or settings registry 222 is a dictionary or database memorizing software components settings and hardware platform settings of the programmable computing device. In some embodiments, separate global maps or settings registries may be generated for various software and hardware aspects of the programmable computing device [wherein the at least one hardware board is compatible].”) [Examiner’s Note: Le Corre teaches a global settings registry that can be conveyed as a Java Script Object Notation file in a database that can be received by a hardware board/hardware aspect of a programmable computing device/SOC as part of the configuration process/generated content.] and
constructing, an environment generated based on the at least one hardware board an image for the selected SoC. (Le Corre [0121-122], “With reference to FIGS. 1 and 2, the programmable computing device 108 may comprise a microcontroller (MCU) or microprocessor (MPU), which may include one or more SoCs. The SoCs may include one or processors, and the processors may have one or more processing cores. See processors 110a, 110b, and processing cores 114a to 114n and 114x of FIG. 1. The processing cores of a processor may comprise, for example, a CPU, a floating-point unit, etc. The processing cores need to be configured, including configuring the process of starting up the programmable computing device 108, which may be referred to as the programmable computing device's 108 boot sequence [based on the at least one hardware board] … A SoC may have several processors, and each processor may have several cores, such as described above with reference to FIG. 1. The cores may employ virtualization, such as trusted/non-trusted worlds in ARM TrustZone technology. The SoC may be organized into trusted and non-trusted worlds (e.g., in an execution context a processor core in trusted world may be able to utilize resources in the trusted world of which it is a member, while those resources would not be available to processing cores outside the trusted world). A hardware execution unit or circuit of a SoC may be a core or a virtualization container (such as a trusted world) within a core of a given hardware platform and may execute a binary program [an image for the selected SoC.]. The binary program may have an association with an execution context of a software project. If a processor has multiple cores, some of these might work in a synchronized manner, and may be considered as forming a single hardware execution unit. An execution domain may be viewed as a container aggregating a hardware execution unit and the platform resources (e.g., internal and external memories, peripherals, etc.) that may be used exclusively to implement a software project. A shared domain may be viewed as a container for shared hardware platform resources, available several execution domains [constructing, an environment generated].”)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the teachings of Le Corre into the teachings of Hill. This combination of teachings would have resulted in a method configured to receive configuration scripts to build an image, as in Hill, wherein a configuration script can correspond to a selected SOC configuration and environment, as in Le Corre. One of ordinary skill in the art would have been motivated to combine these teachings for the purpose of selecting various configurations of state transitions for a programmable computing device to define structure and initiate one or more projects (Le Corre [0199-200]).
The combination of Hill and Le Corre does not teach: flashing the image on to the selected SoC.
However, in an analogous art Minnich teaches flashing the image on to the selected SoC. (Minnich [0086], “As shown, memory 635, via target 640, connects to communication interface 620 as a writeable target. This enables BMC SoC 610 to write to memory 635 (e.g., to the on-chip memory of SoC 605). Thus, a trusted code image (e.g., a single central trusted code image) may be distributed by BMC SoC 610 to one or more SoCs (e.g., to multiple SoCs simultaneously or concurrently, including SoC 605) based on the one or more SoCs being configured as subordinate SoCs (e.g., as QSPI targets with on-chip memory connected to BMC SoC 610 via a QSPI bus).”) [Examiner’s Note: Writing to the memory of a system on chip means to flash the image onto the system on chip.]
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the teachings of Minnich into the teachings of Hill in view of Le Corre. This combination of teachings would have resulted in a method configured to receive configuration scripts to build an image, as in Hill, wherein a configuration script can correspond to a selected SOC configuration and environment, as in Le Corre, and updating code using a baseboard management controller, as in Minnich. One of ordinary skill in the art would have been motivated to combine these teachings for the purpose of distributing trusted code images to one or more target system on chips that are communicatively connected as targets for updates (Minnich [0093-94]).
With regards to claim 18, the rejection of claim 17 is incorporated.
The combination of Hill and Minnich does not teach: wherein the image of the selected SoC incorporates essential elements of the selected SoC
However, in an analogous art Le Corre teaches wherein the image of the selected SoC incorporates essential elements of the selected SoC (Le Corre [0211-212], “The content may comprise plain code (e.g., C code) that is used by the programmable computing device to initialize, configure, or control a software or hardware aspect of the programmable computing device to set the user-selected states when enabled and the transitions from one state to another when requested. Accordingly, the generated content may be initialization code, application code, configuration code, etc. The content may also be other settings, parameters, or other information that initializes, configures, documents, or controls a software or hardware aspect of the programmable computing device [incorporates essential elements of the selected SoC]. In various embodiments, the global map or settings registry, as described above, may be utilized to generate the content … This binary image is the information usable by the programmable computing device to initialize, configure, or control its hardware, software, or a combination thereof to support the system states and transitions as employed by the programmable computing device. In some embodiments, all generated content is utilized to build the binary image for the project [wherein the image of the selected SoC]. In other embodiments, a portion, but not all of the generated content is utilized to build the binary image for the project.”)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the teachings of Le Corre into the teachings of Hill in view of Minnich. This combination of teachings would have resulted in a method configured to receive configuration scripts to build an image, as in Hill, wherein a configuration script can correspond to a selected SOC configuration and environment, as in Le Corre, and updating code using a baseboard management controller, as in Minnich. One of ordinary skill in the art would have been motivated to combine these teachings for the purpose of selecting various configurations of state transitions for a programmable computing device to define structure and initiate one or more projects (Le Corre [0199-200]).
Claims 19-20 are rejected under 35 U.S.C. 103 as being unpatentable over Hill in view of Le Corre in view of Minnich as applied to claim 17 above, and further in view of Gupta in view of Shah.
With regards to claim 19, the rejection of claim 17 is incorporated.
The combination of Hill, Le Corre, and Minnich does not teach: wherein the essential elements include at least a bootloader, a kernel, an open-source package, and a specialized board-specific package.
However, in an analogous art Gupta teaches wherein the essential elements include at least a bootloader, a kernel, [an open-source package,] and a specialized board-specific package. (Gupta [0036], “FIG. 3(B) is a diagram 350 illustrating layers of components that can be included in the BMC firmware image 106 by the image builder 340. In general, the BMC firmware image 106 includes a layer 1 components 370-1, which form the base BMC firmware. More specifically, the layer 1 components 370-1 may contain a bootloader, a kernel, device drivers, a root file system, a board support package (BSP), and components supporting essential or standard BMC functionalities such as IPMI [wherein the essential elements include at least a bootloader, a kernel, an open-source package, and a specialized board-specific package]. The layer 1 components 370-1 may also contain an application installation component 372. As described infra, when the BMC 102 is running the system provided by the BMC firmware image 106, the application installation component 372 can retrieve additional components from a cloud system and install the retrieved component on the BMC 102.”)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the teachings of Gupta into the teachings of Hill in view of Le Corre and further in view of Minnich. This combination of teachings would have resulted in a method configured to receive configuration scripts to build an image, as in Hill, wherein a configuration script can correspond to a selected SOC configuration and environment, as in Le Corre, and updating code using a baseboard management controller, as in Minnich, wherein the script describes the elements essential for the baseboard management controller to the configure the system on chip via an image builder, as in Gupta. One of ordinary skill in the art would have been motivated to combine these teachings for the purpose of building a customized BMC firmware image in accordance to a specification with the relevant code or binaries (Gupta [0049]).
The combination of Hill, Le Corre, Minnich, and Gupta teaches wherein the essential elements include at least a bootloader, a kernel … and a specialized board-specific package but does not teach an open source package
However, in an analogous art Shah teaches an open source package (Shah [0162], “The compiler 914 translates the applications 902 developed with commonly used open-source packages such as Keras and PyTorch into reconfigurable processor specifications. The compiler 914 generates the configuration files 924 with configuration data for the placed positions and the routed data and control networks. The configuration data can include an initial value for the arguments as well. In one implementation, this includes assigning coordinates and communication resources of the physical memory and compute units by placing and routing units onto the array of the processor while maximizing bandwidth and minimizing latency.”)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the teachings of Shah into the teachings of Hill in view of Le Corre in view of Minnich and further in view of Gupta. This combination of teachings would have resulted in a method configured to receive configuration scripts to build an image, as in Hill, wherein a configuration script can correspond to a selected SOC configuration and environment, as in Le Corre, and updating code using a baseboard management controller, as in Minnich, wherein the script describes the elements essential for the baseboard management controller to the configure the system on chip via an image builder, as in Gupta, wherein the essential elements to configure a system on chip includes an open-source package, as in Shah. One of ordinary skill in the art would have been motivated to combine these teachings for the purpose of using various components of the system repository wherein files are associated with selected components and incorporated into the runtime image during the build process (Shah [0036-39]).
With regards to claim 20, the rejection of claim 19 is incorporated.
The combination of Hill, Minnich, Gupta, and Shah does not teach: wherein the custom configuration script file indicates the essential elements of the selected SoC.
However, in an analogous art Le Corre teaches wherein the custom configuration script file indicates the essential elements of the selected SoC. (Le Corre [0095-98], “The global map or settings registry may be arranged such that the user-selected values are literals that can be written directly in the hardware unit registers by the driver software of the programmable computing device. In various embodiments, the global map or settings registry may also retain whatever is used to update the result of the expressions, formulas, or dependencies based on the user's selections. In this way, when a value is updated, such as changed by a user via the graphical user interface, all related values are updated accordingly in the global map or settings registry … In some embodiments, an image of the user selection may be maintained in the JSON files [wherein the custom configuration script file] … The content may also be other settings, parameters, or other information that initializes, configures, or controls a software or hardware aspect of the programmable computing device. The content may also comprise associated documentation [indicates the essential elements of the selected SoC].”)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the teachings of Le Corre into the teachings of Hill in view of Minnich in view of Gupta and further in view of Shah. This combination of teachings would have resulted in a method configured to receive configuration scripts to build an image, as in Hill, wherein a configuration script can correspond to a selected SOC configuration and environment, as in Le Corre, and updating code using a baseboard management controller, as in Minnich, wherein the script describes the elements essential for the baseboard management controller to the configure the system on chip via an image builder, as in Gupta, wherein the essential elements to configure a system on chip includes an open-source package, as in Shah. One of ordinary skill in the art would have been motivated to combine these teachings for the purpose of selecting various configurations of state transitions for a programmable computing device to define structure and initiate one or more projects (Le Corre [0199-200]).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to TRAVIS VIET TRAN whose telephone number is (571)272-3720. The examiner can normally be reached Monday-Friday 8:30AM-5PM.
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 Mui can be reached at 571-272-3708. 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.
/T.V.T./Examiner, Art Unit 2191
/QING CHEN/Primary Examiner, Art Unit 2191