SLUAAP5 july   2023 UCD3138 , UCD3138064 , UCD3138064A , UCD3138128 , UCD3138128A , UCD3138A , UCD3138A64

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Why Lockup Can Occur
  5. 2Reasons for Lockup
    1. 2.1 Wrong Code in the load.asm
    2. 2.2 Misoperation with TI GUI
    3. 2.3 zero_out_integrity_word Function Fails
    4. 2.4 PMBus Communication Fails
    5. 2.5 Unexpected Occurrences
  6. 3How to Avoid a Lockup
  7. 4Unlock with JTAG
    1. 4.1 Enable JTAG Functionality
    2. 4.2 New Target Configuration in CCS
    3. 4.3 Clear the Flash
  8. 5Summary
  9. 6References

Why Lockup Can Occur

A lockup can occur when there is a valid checksum that cannot be cleared. Different UCD3138 devices have different numbers of checksum.

A UCD3138(A) device has one single block. There are two locations for checksum and each checksum is 4 bytes.

  • 0x7fc – boot checksum, sum of the pflash bytes from address 0 to 0x7fB
  • 0x7ffc – overall checksum for pflash, sum of the pflash bytes from address 0 to 0x7ffB

Figure 2-4 is a flowchart showing how UCD3138(A) ROM handles the checksum verification. Regardless of which two checksums is valid, a jump occurs to address 0 to execute code in pflash.

GUID-20230602-SS0I-PR03-9BWV-NGJDGLGTR474-low.svg Figure 1-1 Checksum Verification Flow Chart in UCD3138(A) ROM

A UCD3138064(A) device has block 1 and block 2. There are four locations for checksum and each checksum is 4 bytes.

  • 0x7fc – boot checksum for block 1, sum of the pflash bytes from address 0 to 0x7fB
  • 0x7ffc – overall checksum for block 1, sum of the pflash bytes from address 0 to 0x7ffB
  • 0x87fc – boot checksum for block 2, sum of the pflash bytes from address 0x8000 to 0x87fB
  • 0xfffc – overall checksum for the 64K program combining block 1 and 2, or for block 2 alone

Figure 1-2 is a flowchart showing how UCD3138064(A) ROM handles the checksum verification.

GUID-20230602-SS0I-DZ8J-NGXD-GGB7VLMSLMJB-low.svg Figure 1-2 Checksum Verification Flow Chart in UCD3138064(A) ROM

A UCD3138128(A) has block0, block1, block2, and block3. There are four locations for checksum and each checksum is 8 bytes.

  • 0x7f8 – boot checksum for block 0, sum of the pflash words from address 0 to 0x7f7
  • 0x7ff8 – overall checksum for block 0, sum of the pflash words from address 0 to 0x7ff7
  • 0xfff8 – overall checksum for the 64K program combining block 0 and 1, sum of the pflash words from address 0 to 0xfff7
  • 0x1fff8 – overall checksum for the 128K program, or the 64K program combining block 2 and 3

Figure 1-3 is a flowchart showing how UCD3138128(A) ROM handles the checksum verification.

GUID-20230602-SS0I-V52L-ZXVG-Z2XWW5WGSKLG-low.svg Figure 1-3 Checksum Verification Flow Chart in UCD3138128(A) ROM