IP Library Granted Patent US 10,977,057
Granted Patent B2
US 10,977,057 · App. 15/876,205 · Granted Apr 13, 2021

Electronic apparatus capable of collectively managing different firmware codes and operation method thereof

Inventors: Terrance Shiyang Shih (Milpitas, CA); Chin-Sung Hsu (New Taipei, TW)
Assignee: VIA LABS, INC.
G06F9/45504G06F8/65G06F8/654G06F12/10G06F2212/1041G06F2212/151G06F2212/202
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,977,057
App. No.
15/876,205
Granted
Apr 13, 2021
Kind
B2
Abstract

An electronic apparatus and an operation method thereof are provided. The electronic apparatus includes a nonvolatile memory, a first integrated circuit and a second integrated circuit. The nonvolatile memory stores the first firmware code of the first integrated circuit and the second firmware code of the second integrated circuit. The first integrated circuit is coupled to a memory access interface of the nonvolatile memory to read the first firmware code and the second firmware code. The first integrated circuit has an emulation memory access interface to emulate an emulation memory. The second integrated circuit is coupled to the emulation memory access interface of the first integrated circuit. The second integrated circuit reads the second firmware code from the first integrated circuit via the emulation memory access interface.

Claims (77)

1. An electronic apparatus, comprising:

a nonvolatile memory, having a memory access interface, and configured to store a first firmware code of a first integrated circuit and a second firmware code of a second integrated circuit;

the first integrated circuit, coupled to the memory access interface of the nonvolatile memory to read the first firmware code and the second firmware code, and having a first emulation memory access interface to emulate a first emulation memory; and

the second integrated circuit, coupled to the first emulation memory access interface of the first integrated circuit, wherein the second integrated circuit sends a first read command via the first emulation memory access interface to read the second firmware code from the first integrated circuit,

wherein the first integrated circuit further comprises a second emulation memory access interface to emulate a second emulation memory, the nonvolatile memory is further configured to store a third firmware code of a third integrated circuit, the first integrated circuit further reads the third firmware code from the nonvolatile memory, and the electronic apparatus further comprises:

the third integrated circuit, coupled to the second emulation memory access interface of the first integrated circuit, wherein the third integrated circuit sends a second read command via the second emulation memory access interface to read the third firmware code from the first integrated circuit, and the third integrated circuit executes the third firmware code.

2. The electronic apparatus according to claim 1 , wherein when the second integrated circuit performs a firmware reading on the first emulation memory via the first emulation memory access interface using a first read address, the first integrated circuit converts the first read address into a second read address, the first integrated circuit reads the second firmware code from the nonvolatile memory using the second read address, and the first integrated circuit returns the second firmware code to the second integrated circuit via the first emulation memory access interface.

3. The electronic apparatus according to claim 1 , wherein the third integrated circuit executes the third firmware code to provide a DisplayPort conversion function.

4. The electronic apparatus according to claim 1 , wherein the first integrated circuit executes the first firmware code to provide a power delivery function, and the second integrated circuit executes the second firmware code to provide a hub function.

5. The electronic apparatus according to claim 1 , further comprising:

an upstream-facing port, configured to connect to a host, wherein the first integrated circuit is coupled to a configuration channel pin of the upstream-facing port, and the second integrated circuit is coupled to a data pin of the upstream-facing port.

6. The electronic apparatus according to claim 5 , wherein the first integrated circuit comprises a USB power delivery control circuit, the second integrated circuit comprises a USB hub control circuit, and a data transmission between the USB power delivery control circuit and the USB hub control circuit is performed via a USB type-C port controller interface.

7. The electronic apparatus according to claim 6 , wherein

when the electronic apparatus operates in a normal operation mode, the second integrated circuit gains a control authority in order to control the first integrated circuit via the USB type-C port controller interface;

when the host updates the second firmware code of the second integrated circuit for the electronic apparatus, an operation mode of the electronic apparatus is switched from the normal operation mode to a firmware updating mode; and

in the firmware updating mode, the control authority is transferred from the second integrated circuit to the first integrated circuit, the first integrated circuit receives a new second firmware code from the host via the USB type-C port controller interface, the second integrated circuit and the data pin of the upstream-facing port, and the first integrated circuit verifies the new second firmware code in order to update the second firmware code in the nonvolatile memory.

8. The electronic apparatus according to claim 7 , wherein the new second firmware code is an encrypted firmware code encrypted by a private key, and the operation of verifying the new second firmware codes comprises:

performing a decrypting operation on the new second firmware code using a public key corresponding to the private key by the first integrated circuit, so as to obtain a decrypted new second firmware code; and

when the decrypting operation is successful, updating the second firmware code in the nonvolatile memory using the decrypted new second firmware code by the first integrated circuit.

9. The electronic apparatus according to claim 6 , wherein

when the electronic apparatus operates in a normal operation mode, the second integrated circuit gains a control authority in order to control the first integrated circuit via the USB type-C port controller interface;

when the host updates the second firmware code of the second integrated circuit for the electronic apparatus, an operation mode of the electronic apparatus is switched from the normal operation mode to a firmware updating mode; and

in the firmware updating mode, the control authority is transferred from the second integrated circuit to the first integrated circuit, the first integrated circuit receives a packet from the host via the USB type-C port controller interface, the second integrated circuit and the data pin of the upstream-facing port, the packet comprises a digital signature and a new second firmware code, and the first integrated circuit verifies the digital signature in order to update the second firmware code in the nonvolatile memory.

10. The electronic apparatus according to claim 9 , wherein the digital signature includes a set of first hash values that have been previously encrypted by a private key, and the operation of updating the second firmware code in the nonvolatile memory comprises:

hashing the new second firmware code transmitted from the host to generate a hash result by the first integrated circuit;

decrypting the digital signatures using a public key by the first integrated circuit, so as to obtain a set of second hash values;

comparing whether the set of second hash values is the same as the hash result by the first integrated circuit, so as to obtain a comparison result; and

when the comparison result is the same, updating the second firmware code in the nonvolatile memory using the new second firmware code by the first integrated circuit.

11. The electronic apparatus according to claim 6 , wherein when the host performs an identification operation for the electronic apparatus,

the second integrated circuit receives an encrypted value provided by the host via the data pin of the upstream-facing port, wherein the encrypted value is generated by encrypting an original value using a public key by the host;

the first integrated circuit receives the encrypted value from the second integrated circuit via the USB type-C port controller interface;

the first integrated circuit performs a decrypting operation on the encrypted value using a private key, so as to obtain a decrypted value; and

the second integrated circuit returns the decrypted value to the host via the data pin of the upstream-facing port.

12. An operation method of an electronic apparatus, comprising:

storing a first firmware code of a first integrated circuit and a second firmware code of a second integrated circuit by a nonvolatile memory;

reading the first firmware code from the nonvolatile memory by the first integrated circuit;

providing a first emulation memory access interface to emulate a first emulation memory by the first integrated circuit;

reading the second firmware code from the nonvolatile memory by the first integrated circuit;

sending a first read command via the first emulation memory access interface to read the second firmware code from the first integrated circuit by the second integrated circuit,

providing a second emulation memory access interface to emulate a second emulation memory by the first integrated circuit;

storing a third firmware code of a third integrated circuit by the nonvolatile memory;

reading the third firmware code from the nonvolatile memory by the first integrated circuit; and

sending a second read command via the second emulation memory access interface to read the third firmware code from the first integrated circuit by the third integrated circuit and executing the third firmware code by the third integrated circuit.

13. The operation method according to claim 12 , wherein the step of reading the second firmware code from the first integrated circuit comprises:

when the second integrated circuit performs a firmware reading on the first emulation memory via the first emulation memory access interface using a first read address, converting the first read address into a second read address by the first integrated circuit;

reading the second firmware code from the nonvolatile memory using the second read address by the first integrated circuit; and

returning the second firmware code to the second integrated circuit via the first emulation memory access interface by the first integrated circuit.

14. The operation method according to claim 12 , further comprising:

executing the third firmware code to provide a DisplayPort conversion function by the third integrated circuit.

15. The operation method according to claim 12 , further comprising:

executing the first firmware code to provide a power delivery function by the first integrated circuit; and

executing the second firmware code to provide a hub function by the second integrated circuit.

16. The operation method according to claim 12 , further comprising:

providing an upstream-facing port, wherein the upstream-facing port is configured to connect to a host, the first integrated circuit is coupled to a configuration channel pin of the upstream-facing port, and the second integrated circuit is coupled to a data pin of the upstream-facing port.

17. The operation method according to claim 16 , wherein the first integrated circuit comprises a USB power delivery control circuit, the second integrated circuit comprises a USB hub control circuit, and a data transmission between the USB power delivery control circuit and the USB hub control circuit is performed via a USB type-C port controller interface.

18. The operation method according to claim 17 , further comprising:

when the electronic apparatus operates in a normal operation mode, gaining a control authority by the second integrated circuit in order to control the first integrated circuit via the USB type-C port controller interface;

when the host updates the second firmware code of the second integrated circuit for the electronic apparatus, switching an operation mode of the electronic apparatus from the normal operation mode to a firmware updating mode; and

in the firmware updating mode, transferring the control authority from the second integrated circuit to the first integrated circuit, receiving a new second firmware code from the host via the USB type-C port controller interface, the second integrated circuit and the data pin of the upstream-facing port by the first integrated circuit, and verifying the new second firmware code by the first integrated circuit in order to update the second firmware code in the nonvolatile memory.

19. The operation method according to claim 18 , wherein the new second firmware code is an encrypted firmware code encrypted by a private key, and the step of verifying the new second firmware codes comprises:

performing a decrypting operation on the new second firmware code using a public key corresponding to the private key by the first integrated circuit, so as to obtain a decrypted new second firmware code; and

when the decrypting operation is successful, updating the second firmware code in the nonvolatile memory using the decrypted new second firmware code by the first integrated circuit.

20. The operation method according to claim 17 , further comprising:

when the electronic apparatus operates in a normal operation mode, gaining a control authority by the second integrated circuit in order to control the first integrated circuit via the USB type-C port controller interface;

when the host updates the second firmware code of the second integrated circuit for the electronic apparatus, switching an operation mode of the electronic apparatus from the normal operation mode to a firmware updating mode; and

in the firmware updating mode, transferring the control authority from the second integrated circuit to the first integrated circuit, receiving a packet from the host via the USB type-C port controller interface, the second integrated circuit and the data pin of the upstream-facing port by the first integrated circuit, wherein the packet comprises a digital signature and a new second firmware code, and the first integrated circuit verifies the digital signature in order to update the second firmware code in the nonvolatile memory.

21. The operation method according to claim 20 , wherein the digital signature includes a set of first hash values that have been previously encrypted by a private key, and the operation of updating the second firmware code in the nonvolatile memory comprises:

hashing the new second firmware code transmitted from the host to generate a hash result by the first integrated circuit;

decrypting the digital signatures using a public key by the first integrated circuit, so as to obtain a set of second hash values;

comparing whether the set of second hash values is the same as the hash result by the first integrated circuit, so as to obtain a comparison result; and

when the comparison result is the same, updating the second firmware code in the nonvolatile memory using the new second firmware code by the first integrated circuit.

22. The operation method according to claim 17 , further comprising:

performing an identification operation for the electronic apparatus by the host, wherein when the host performs the identification operation for the electronic apparatus,

receiving an encrypted value provided by the host via the upstream-facing port by the second integrated circuit, wherein the encrypted value is generated by encrypting an original value using a public key by the host;

receiving the encrypted value from the second integrated circuit via the USB type-C port controller interface by the first integrated circuit;

performing a decrypting operation on the encrypted value using a private key by the first integrated circuit, so as to obtain a decrypted value; and

returning the decrypted value to the host via the data pin of the upstream-facing port by the second integrated circuit.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2019
From: VIA TECHNOLOGIES, INC.
To: VIA LABS, INC.
Reel/Frame 050808/0461 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2018
From: SHIH, TERRANCE SHIYANG; HSU, CHIN-SUNG
To: VIA TECHNOLOGIES, INC.
Reel/Frame 044683/0389 →
Continuity (2)
Provisional Application 62449140 · Jan 23, 2017
Related Publication 20180210744A1 · Jul 26, 2018
Cited By (1)
US 12,307,242