# US 12,117,941 B2 · Security of embedded devices through a device lifecycle with a device identifier

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,117,941 B2
- Document ID: US12117941B2
- Status: Granted
- Kind: B2
- Application number: 18/136,446
- Filed: 2023-04-19
- Published: 2023-08-10
- Granted: 2024-10-15
- Earliest claimed: 2019-06-27
- Assignees: Microchip Technology Incorporated
- Applicants: Microchip Technology Incorporated
- Inventors: Michael Simmons
- Web page: https://patentgrep.com/patent/US12117941B2

## CPC

- G06F 12/1416: {by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights (G06F12/1458 takes precedence)}
- G06F 21/72: in cryptographic circuits
- G06F 3/0616: {in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]}
- G06F 3/0653: {Monitoring storage devices or systems}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G01R 31/31719: {Security aspects, e.g. preventing unauthorised access during test}
- G06F 3/0622: {in relation to access}
- G06F 3/0637: {Permissions}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G01R: MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES (indicating correct tuning of resonant circuits H03J3/12)

## Abstract

An apparatus includes a database with device profiles, and a device programmer. The device programmer includes instructions. The instructions, when read and executed by a processor, cause the device programmer to identify a device identifier of an electronic device. The device programmer is further caused to, based upon the device identifier, access device data from the database. The device programmer is further caused to, based upon the device data, determine an area of memory of the electronic device that can be written. The device programmer is further caused to, based on the determination of the area of memory of the electronic device that can be written, write data to the area of memory.

## Claims

### Claim 1

A method, comprising:
accessing a first electronic device;
identifying a first device identifier of the first electronic device;
based upon the first device identifier, accessing first device data from a database including a plurality of device profiles;
based upon the first device data, determining a first area of memory of the first electronic device that can be written; and
based on the determination of the first area of memory of the first electronic device that can be written, writing data to the first area of memory of the first electronic device;
wherein the first device data includes a first memory map of the first electronic device, the first memory map to define the first area of memory of the first electronic device as programmable.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first memory map is to define a second area of memory of the first electronic device that is not programmable.

### Claim 3 (depends on 2)

The method of claim 2, wherein the first memory map is to define the second area of memory of the first electronic device as unseen from usage of the first electronic device.

### Claim 4

A method, comprising:
accessing a first electronic device;
identifying a first device identifier of the first electronic device;
based upon the first device identifier, accessing first device data from a database including a plurality of device profiles;
based upon the first device data, determining a first area of memory of the first electronic device that can be written;
based on the determination of the first area of memory of the first electronic device that can be written, writing data to the first area of memory of the first electronic device; and
upon writing data to the first area of memory of the first electronic device, replacing the first device identifier with a second device identifier on the first electronic device.

### Claim 5 (depends on 4)

The method of claim 4, wherein the second device identifier is to define a third area of memory that can be written.

### Claim 6 (depends on 5)

The method of claim 5, wherein the method is performed at an apparatus and the second device identifier is to prevent one or more other apparatuses from writing data to the first area of memory of the first electronic device.

### Claim 7 (depends on 4)

The method of claim 4, wherein the second device identifier is associated with a second memory map of the first electronic device, the second memory map to define the third area of memory of the first electronic device as programmable.

### Claim 8 (depends on 4)

The method of claim 4, wherein the second device identifier is to define that the first area of memory is unprogrammable.

### Claim 9 (depends on 4)

The method of claim 4, comprising:
identifying a third device identifier of a second electronic device; and
based upon the third device identifier, determining that a different device programmer is to write data to the second electronic device instead of the device programmer.

### Claim 10 (depends on 4)

The method of claim 4, wherein:
the first device identifier is to allow access through a first memory map to debug features of the first electronic device; and
the second device identifier is to deny access through a second memory map to debug features of the first electronic device.

### Claim 11

A method, comprising:
providing access to a first electronic device for a device programmer;
providing a first device identifier to the device programmer from a memory; and
based on the first device identifier:
denoting a phase of production for the first electronic device; and
allowing access to a first area of the memory that can be written;
wherein the first device identifier is to be replaced by a second device identifier.

### Claim 12 (depends on 11)

The method of claim 11, wherein the second device identifier is to define a third area of memory that can be written.

### Claim 13 (depends on 11)

The method of claim 11, wherein the second device identifier is to prevent writes of data to the first area of the memory.

### Claim 14 (depends on 11)

The method of claim 11, wherein the second device identifier is to define that the first area of memory is unprogrammable.

### Claim 15 (depends on 11)

The method of claim 11, wherein the method is performed at an apparatus and:
the first device identifier is to allow access through a first memory map to debug features of the apparatus; and
the second device identifier is to deny access through a second memory map to debug features of the apparatus.

### Claim 16

An article of manufacture comprising a machine-readable non-transitory medium, the medium including instructions, the instructions, when loaded and executed by a processor, cause the processor to:
access a first electronic device;
identify a first device identifier of the first electronic device;
based upon the first device identifier, access first device data from a database including a plurality of device profiles;
based upon the first device data, determine a first area of memory of the first electronic device that can be written; and
based on the determination of the first area of memory of the first electronic device that can be written, write data to the first area of memory of the first electronic device;
wherein the first device data includes a first memory map of the first electronic device, the first memory map to define the first area of memory of the first electronic device as programmable.

### Claim 17 (depends on 16)

The article of claim 16, wherein the first memory map is to define a second area of memory of the first electronic device that is not programmable.

### Claim 18 (depends on 17)

The article of claim 17, wherein the first memory map is to define the second area of memory of the first electronic device as unseen from usage of the first electronic device.

### Claim 19

An article of manufacture comprising a machine-readable non-transitory medium, the medium including instructions, the instructions, when loaded and executed by a processor, cause the processor to:
access a first electronic device;
identify a first device identifier of the first electronic device;
based upon the first device identifier, access first device data from a database including a plurality of device profiles;
based upon the first device data, determine a first area of memory of the first electronic device that can be written; and
based on the determination of the first area of memory of the first electronic device that can be written, write data to the first area of memory of the first electronic device;
wherein the processor is to, upon writing data to the first area of memory of the first electronic device, replace the first device identifier with a second device identifier on the first electronic device.

### Claim 20 (depends on 19)

The article of claim 19, wherein the second device identifier is to define a third area of memory that can be written.

### Claim 21 (depends on 20)

The article of claim 20, wherein the second device identifier is to prevent one or more other apparatuses from writing data to the first area of memory of the first electronic device.

### Claim 22 (depends on 19)

The article of claim 19, wherein the second device identifier is associated with a second memory map of the first electronic device, the second memory map to define the third area of memory of the first electronic device as programmable.

### Claim 23 (depends on 19)

The article of claim 19, wherein the second device identifier is to define that the first area of memory is unprogrammable.

### Claim 24 (depends on 19)

The article of claim 19, wherein the processor is to:
identify a third device identifier of a second electronic device; and
based upon the third device identifier, determine that a different device programmer is to write data to the second electronic device instead of the device programmer.

### Claim 25 (depends on 19)

The article of claim 19, wherein:
the first device identifier is to allow access through a first memory map to debug features of the first electronic device; and
the second device identifier is to deny access through a second memory map to debug features of the first electronic device.

### Claim 26

An article of manufacture comprising a machine-readable non-transitory medium, the medium including instructions, the instructions, when loaded and executed by a processor, cause the processor to:
provide access to a first electronic device for a device programmer;
provide a first device identifier to the device programmer from a memory; and
based on the first device identifier:
denote a phase of production for the first electronic device; and
allow access to a first area of the memory that can be written;
wherein the first device identifier is to be replaced by a second device identifier.

### Claim 27 (depends on 26)

The article of claim 26, wherein the second device identifier is to define a third area of memory that can be written.

### Claim 28 (depends on 26)

The article of claim 26, wherein the second device identifier is to prevent writes of data to the first area of the memory.

### Claim 29 (depends on 26)

The article of claim 26, wherein the second device identifier is to define that the first area of memory is unprogrammable.

### Claim 30 (depends on 26)

The article of claim 26, wherein the processor is of an apparatus and:
the first device identifier is to allow access through a first memory map to debug features of the apparatus; and
the second device identifier is to deny access through a second memory map to debug features of the apparatus.
