xref: /optee_os/lib/libutee/include/k3/otp_keywriting_ta.h (revision c6d054ebe21bb4031ada86bcbbb81a5aa679f6e2)
1*c6d054ebSManorit Chawdhry /* SPDX-License-Identifier: BSD-2-Clause */
2*c6d054ebSManorit Chawdhry /*
3*c6d054ebSManorit Chawdhry  * Texas Instruments System Control Interface Driver
4*c6d054ebSManorit Chawdhry  *
5*c6d054ebSManorit Chawdhry  * Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
6*c6d054ebSManorit Chawdhry  *	Manorit Chawdhry <m-chawdhry@ti.com>
7*c6d054ebSManorit Chawdhry  */
8*c6d054ebSManorit Chawdhry 
9*c6d054ebSManorit Chawdhry #ifndef __K3_OTP_KEYWRITING_TA_H__
10*c6d054ebSManorit Chawdhry #define __K3_OTP_KEYWRITING_TA_H__
11*c6d054ebSManorit Chawdhry 
12*c6d054ebSManorit Chawdhry /* UUID of the trusted application */
13*c6d054ebSManorit Chawdhry #define PTA_K3_OTP_KEYWRITING_UUID \
14*c6d054ebSManorit Chawdhry 	{ 0xacc50f40, 0x0613, 0x4abd, \
15*c6d054ebSManorit Chawdhry 		{ 0x8d, 0xfe, 0xa9, 0x64, 0xcb, 0x74, 0xeb, 0x69} }
16*c6d054ebSManorit Chawdhry 
17*c6d054ebSManorit Chawdhry #define PTA_K3_OTP_KEYWRITING_NAME "pta_k3_otp.ta"
18*c6d054ebSManorit Chawdhry 
19*c6d054ebSManorit Chawdhry /*
20*c6d054ebSManorit Chawdhry  * TA_OTP_KEYWRITING_CMD_READ_MMR - Read an extended OTP bit
21*c6d054ebSManorit Chawdhry  * param[0] (value/input)  32-bit MMR index
22*c6d054ebSManorit Chawdhry  * param[1] (value/output) OTP value written in efuse
23*c6d054ebSManorit Chawdhry  * param[2] unused
24*c6d054ebSManorit Chawdhry  * param[3] unused
25*c6d054ebSManorit Chawdhry  */
26*c6d054ebSManorit Chawdhry #define TA_OTP_KEYWRITING_CMD_READ_MMR		0
27*c6d054ebSManorit Chawdhry 
28*c6d054ebSManorit Chawdhry /*
29*c6d054ebSManorit Chawdhry  * TA_OTP_KEYWRITING_CMD_WRITE_ROW - Write into extended OTP row
30*c6d054ebSManorit Chawdhry  * param[0] (value/input) Row index
31*c6d054ebSManorit Chawdhry  * param[1].a (value/input) Value to be written
32*c6d054ebSManorit Chawdhry  * param[1].b (value/input) Mask for the value
33*c6d054ebSManorit Chawdhry  * param[2] unused
34*c6d054ebSManorit Chawdhry  * param[3] unused
35*c6d054ebSManorit Chawdhry  */
36*c6d054ebSManorit Chawdhry #define TA_OTP_KEYWRITING_CMD_WRITE_ROW		1
37*c6d054ebSManorit Chawdhry 
38*c6d054ebSManorit Chawdhry /*
39*c6d054ebSManorit Chawdhry  * TA_OTP_KEYWRITING_CMD_LOCK_ROW - Lock an extended OTP row
40*c6d054ebSManorit Chawdhry  * param[0].a (value/input) Row index
41*c6d054ebSManorit Chawdhry  * param[0].b (value/input)
42*c6d054ebSManorit Chawdhry  *	BIT(0) - soft_lock
43*c6d054ebSManorit Chawdhry  *	BIT(1) - hw_read_lock
44*c6d054ebSManorit Chawdhry  *	BIT(2) - hw_write_lock
45*c6d054ebSManorit Chawdhry  * param[1] unused
46*c6d054ebSManorit Chawdhry  * param[2] unused
47*c6d054ebSManorit Chawdhry  * param[3] unused
48*c6d054ebSManorit Chawdhry  */
49*c6d054ebSManorit Chawdhry #define TA_OTP_KEYWRITING_CMD_LOCK_ROW		2
50*c6d054ebSManorit Chawdhry 
51*c6d054ebSManorit Chawdhry #define K3_OTP_KEYWRITING_SOFT_LOCK		BIT(0)
52*c6d054ebSManorit Chawdhry #define K3_OTP_KEYWRITING_HW_READ_LOCK		BIT(1)
53*c6d054ebSManorit Chawdhry #define K3_OTP_KEYWRITING_HW_WRITE_LOCK		BIT(2)
54*c6d054ebSManorit Chawdhry 
55*c6d054ebSManorit Chawdhry #endif /* __K3_OTP_KEYWRITING_TA_H__ */
56