SDAA376 August   2026 DRA821U-Q1 , DRA829J-Q1 , DRA829V-Q1 , TDA4AH-Q1 , TDA4AL-Q1 , TDA4AP-Q1 , TDA4APE-Q1 , TDA4VE-Q1 , TDA4VH-Q1 , TDA4VL-Q1 , TDA4VM , TDA4VM-Q1 , TDA4VP-Q1 , TDA4VPE-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
    1. 1.1 Why Keywriter is Needed
    2. 1.2 What is Keywriter
  5. 2Keywriter Certificate Blob
    1. 2.1 Certificate Generation Overview
  6. 3Production Deployment Methods
    1. 3.1 OSPI Boot Method
    2. 3.2 eMMC Boot Method
    3. 3.3 eMMC Boot with DFU Backup Method
    4. 3.4 JTAG/Development Boot Method
    5. 3.5 RGMI Ethernet Boot Mode
  7. 4Updates in the Field
    1. 4.1 SWREV (Software Revision)
    2. 4.2 KEYREV (Key Revision)
  8. 5Common Debugging Steps
    1. 5.1 Dry-Run Testing
    2. 5.2 Package Requirements
    3. 5.3 eFuse Programming Setup
    4. 5.4 Verifying Programming Results
    5. 5.5 Boot Failure Troubleshooting
    6. 5.6 Trace Collection Without Wakeup UART
  9. 6Summary
  10. 7References

Dry-Run Testing

  • Remove/comment-out VPP-enable logic inside Keywriter application, build and run the keywriter tool
  • If VPP is disabled, eFuse programming will fail.
  • Refer to TIFS (Wakeup UART) traces for parsing validation and a failure message from keywriter TIFS as actual eFuse burning fails.

The following code shows the reference logs from WKUP and MCU UART on J721S2 EVM, command used for generating the cert blob is :

./gen_keywr_cert.sh -t ti_fek_public.pem
-s keys/smpk.pem --smek keys/smek.key -s-rp --smek-rp
-b keys/bmpk.pem --bmek keys/bmek.key -b-rp --bmek-rp
--mek-opt 0x1 --mpk-opt 0x21
--keycnt 2 --keycnt-wp
--keyrev 1
Table 5-1
MCU UART (R5 app.) WKUP UART (Keywriter TIFS)
OTP Keywriter Version: 02.00.00.00 (May 20 2026 - 16:02:05)
OTP Keywriter ver: 10.1.4-v10.01.04a-1-gf7c27 (Fie
Legacy Boot Mode

Key programming sequence initiated
Taking OTP certificate from 0x41c70004
Sciclient_otpProcessKeyCfg returns: -1
Debug response: 0x800
Key programming sequence completed
# Decrypting extensions..
#
MPK Options: 0x21
MEK Options: 0x1

MPK Opt P1: 0x1
MPK Opt P2: 0x1
MEK Opt : 0x1
* SMPKH Part 1 BCH code: 61b45b59
* SMPKH Part 2 BCH code: 417d4cb4
* SMPK Hash (part-1,2):1f6002b07cd9b0b7c47d9ca8d1aae57b8e8784a12f636b2b760d7d98a18f189701
60dfd0f23e2b0cb10ec7edc7c6edac3d9bdfefe0eddc3fff7fe9ad875195527d01* SMEK BCH code: 21224fcc

* SMEK Hash: 92785809a3dfefea57f6bbed642d730ba5d05e601222a72e815bf01ceb3a50f96ab85d282425f684436fabd4c7da624b791da411615035314103cc64e611f532
* BMPKH Part 1 BCH code: 81a4977b
* BMPKH Part 2 BCH code: 613bf931
* BMPK Hash (part-1,2):
b41865771ef3e13933568b1d1d50a72f5037a2a103c4535c713e10a61df1609c01
f6033117fbb56d5f190a17598e151141c6e413e2d853e56aae7997820639909b01
* BMEK BCH code: 21ec5cec
* BMEK Hash: 21a5ae74b64b1c9fbd1f9201e60a319fe417edf06c2f9ba71fa3e1a967d171b684a4f85a83b8a4821abffe8e322b3697e299ffa94dec921bd4ac99f8ca59dd6c
EXT OTP extension programming disabled
MSV extension programming disabled
* KEY CNT: 03030000
* KEY REV: 01010000
SWREV extension programming disabled
FW CFG REV extension programming disabled
* KEYWR VERSION: 0x20000
#
# Programming Keys..
#
* MSV:
[u32] bch + msv: 0x8BAC0FFE
MSV extension programming disabled
[u32] bch + msv: 0x8BAC0FFE
* SWREV:
[u32] SWREV-SBL: 0x1
[u32] SWREV-SYSFW : 0x1
SWREV extension programming disabled
[u32] SWREV-SBL: 0x1
[u32] SWREV-SYSFW : 0x1
* FW CFG REV:
[u32] SWREV-FW-CFG-REV: 0x0
SWREV SEC BCFG extension programming disabled
[u32] SWREV-FW-CFG-REV: 0x0
* EXT OTP:
EXT OTP extension programming disabled
* BMPKH, BMEK:
Error in programming BMPKH part 1
debug_response: 0x800