Extended OTP TISCI Description

This chapter provides information on available TISCI messages for managing the extended one time programmable (OTP) efuse array on K3 devices.

For K3 devices except AM64x, AM62x and AM62Ax:

TISCI Message ID Message Name Available in GP Avialable in HS-FS
0x9022 TISCI_MSG_READ_OTP_MMR No No
0x9023 TISCI_MSG_WRITE_OTP_ROW No No
0x9024 TISCI_MSG_LOCK_OTP_ROW No No
0x9025 TISCI_MSG_SOFT_LOCK_OTP_WRITE_GLOBAL No No
0x9026 TISCI_MSG_GET_OTP_ROW_LOCK_STATUS No No

For AM64x, AM62x and AM62Ax:

TISCI Message ID Message Name Available in GP Avialable in HS-FS
0x9022 TISCI_MSG_READ_OTP_MMR Yes Yes
0x9023 TISCI_MSG_WRITE_OTP_ROW Yes Yes
0x9024 TISCI_MSG_LOCK_OTP_ROW Yes Yes
0x9025 TISCI_MSG_SOFT_LOCK_OTP_WRITE_GLOBAL Yes Yes
0x9026 TISCI_MSG_GET_OTP_ROW_LOCK_STATUS Yes Yes

This document must be read alongside

  1. Using Extended OTP and
  2. Security Board Configuration, specifically Extended OTP array configuration

API Description

TISCI_MSG_READ_OTP_MMR - Read OTP MMR

Usage

Message Type Secure
Secure Queue Only? Yes

TISCI Message ID

TISCI_MSG_READ_OTP_MMR          (0x9022U)

Message to read 32 bit OTP MMR by register number

struct tisci_msg_read_otp_mmr_req

Request message for reading OTP MMR

Parameter Type Description
hdr struct tisci_header Common TI-SCI header
mmr_idx u8 Index of the 32-bit MMR to be read. Index starts from zero.

struct tisci_msg_read_otp_mmr_resp

Respone message for reading OTP MMR

Parameter Type Description
hdr struct tisci_header Common TI-SCI header
mmr_val u32 Value of the requested 32-bit MMR

TISCI_MSG_WRITE_OTP_ROW - Write OTP ROW

Usage

Message Type Secure
Secure Queue Only? Yes

TISCI Message ID

TISCI_MSG_WRITE_OTP_ROW          (0x9023U)

Message to write to non-secure OTP Row

struct tisci_msg_write_otp_row_req

Request message for writing to an OTP row

Parameter Type Description
hdr struct tisci_header Common TI-SCI header
row_idx u8 Index of the otp row to be written. Index starts from zero.
row_val u32 value to be written to the otp row
row_mask u32 mask specifying the bits in row_val to be written

struct tisci_msg_write_otp_row_resp

Respone message for writing to an OTP row

Parameter Type Description
hdr struct tisci_header Common TI-SCI header
row_val u32 value read back from the row after the write operation.

TISCI_MSG_LOCK_OTP_ROW - Lock OTP ROW

Usage

Message Type Secure
Secure Queue Only? Yes

TISCI Message ID

TISCI_MSG_LOCK_OTP_ROW          (0x9024U)

Message to lock OTP Row

struct tisci_msg_lock_otp_row_req

Request message for hardware locking an OTP row

Parameter Type Description
hdr struct tisci_header Common TI-SCI header
row_idx u8 Index of the otp row to be written. Index starts from zero.
hw_write_lock u8 indicates if write lock has to be applied in HW on the current row. Set to 0x5A for write lock.
hw_read_lock u8 indicates if read lock has to be applied in HW on the current row. Set to 0x5A for read lock.
row_soft_lock u8 indicates if soft lock has to be enabled on current row preventing writes. (ignored for now)

In all cases 0x5A indicates true and 0xA5 indicates false. All other values are invalid.

struct tisci_msg_lock_otp_row_resp

Respone message for hardware lock OTP row

Parameter Type Description
hdr struct tisci_header Common TI-SCI header

TISCI_MSG_SOFT_LOCK_OTP_WRITE_GLOBAL - Soft Lock OTP Write Globally

Usage

Message Type Secure
Secure Queue Only? Yes

TISCI Message ID

TISCI_MSG_SOFT_LOCK_OTP_WRITE_GLOBAL          (0x9025U)

Message to perform a global lock on OTP writes

struct tisci_msg_soft_lock_otp_write_global_req

Request message for performing a global soft write lock on OTP rows

Parameter Type Description
hdr struct tisci_header Common TI-SCI header

struct tisci_msg_soft_lock_otp_write_global_resp

Respone message for global soft write lock on OTP rows

Parameter Type Description
hdr struct tisci_header Common TI-SCI header

TISCI_MSG_GET_OTP_ROW_LOCK_STATUS - Get OTP ROW Lock Status

Usage

Message Type Secure
Secure Queue Only? Yes

TISCI Message ID

TISCI_MSG_GET_OTP_ROW_LOCK_STATUS          (0x9026U)

Message to get the lock status of a row

struct tisci_msg_get_otp_row_lock_status_req

Request message for querying lock status of an OTP row

Parameter Type Description
hdr struct tisci_header Common TI-SCI header
row_idx u8 Index of the otp row to be queried. Index starts from zero.

struct tisci_msg_get_otp_row_lock_status_resp

Respone message for Get OTP row lock status request

Parameter Type Description
hdr struct tisci_header Common TI-SCI header
global_soft_lock u8 indicates if global soft lock has been enabled preventing writes.
hw_write_lock u8 indicates if write lock has been applied in HW on the current row.
hw_read_lock u8 indicates if read lock has been applied in HW on the current row.
row_soft_lock u8 indicates if soft lock has been enabled on current row preventing writes.

In all cases 0x5A indicates true and 0xA5 indicates false. All other values are invalid.