Short descriptionProduct version(s)Detailed description
0A, 1B
version (T1.1.5) will have runBootloader API function.
Section 5 “Errata notes
detail”
NXP Semiconductors
3. Functional problems detail
3.1 ROM.1: For PRINCE encrypted region, partial erase cannot be
performed
Introduction
The LPC55S6x devices supports real-time encryption and decryption for on-chip flash
using the PRINCE encryption algorithm. The PRINCE module supports three flash
memory regions for real-time encryption and decryption, referred to as crypto regions.
Each crypto region resides at a 256 kB address boundary within the flash and are divided
into 8 kB sub-regions which can be individually enabled.
Problem
For the LPC55S6x, when an erase operation is performed with a size less then 8 kB for a
PRINCE encrypted region, a return error is returned and subsequent ISP commands do
not respond.
Work-around
LPC55S6x
Errata sheet LPC55S6x
When a region is marked as a PRINCE encrypted region, a full erase of the PRINCE
encrypted region must be performed.
This issue is fixed on device revision 1B.
3.2 ROM.2: For PUF based key provisioning, a reset must be
performed
Introduction
On the LPC55S6x, the Key Management module supports storing three 128-bit PRINCE
Keys (KEY1, KEY2, and KEY3) used for the decryption process.
Problem
After PUF based key provisioning, the PRINCE module cannot perform the decryption
process without performing a reset.
Work-around
Perform a reset via the external reset pin or power cycle the device for a successful
decryption process when using a PUF key.
This issue is fixed on device revision 1B.
3.3 ROM.3: Unprotected sub regions in PRINCE defined
regions cannot be used.
Introduction
The LPC55S6x devices support real-time encryption and decryption for on-chip flash
using the PRINCE encryption algorithm. The PRINCE module supports three flash
memory regions for real-time encryption and decryption, referred to as crypto regions.
Each crypto region resides at a 256 kB address boundary within the flash and is divided
into 8 kB sub-regions which can be individually enabled.
Unprotected (non PRINCE encrypted) sub flash in PRINCE defined regions cannot be
written after an erase operation. Any non PRINCE encrypted sub regions in the PRINCE
defined regions cannot be used.
Work-around
There is no work-around.
This issue is fixed on device revision 1B.
3.4 ROM.4: Last page of image is erased when simultaneously
programming the signed image and CFPA region
Introduction
On the LPC55S6x, the protected flash region (PFR) supports a Customer Field
Programmable Area (CFPA) which can be used for Monotonic counters, Key revocation,
and PRINCE IV codes. Also, the ROM supports secure boot using a signed image.
Problem
LPC55S6x
Errata sheet LPC55S6x
When simultaneously programming the signed image and the CFPA via the Secure Binary
(SB2 file) image format, the last page of the image is erased.
Work-around
The signed image and the CFPA need to be programmed one a time to prevent the last
page of the image from being erased.
This issue is fixed on device revision 1B.
3.5 ROM.5: ROM fails to enter ISP mode when image is corrupted with
flash pages in an erased or unprogrammed state
Introduction
On the LPC55S6x, if the image is corrupted with flash pages in an erased or
unprogrammed state, the ROM may fail to automatically enter ISP mode.
Problem
When secure boot is enabled in CMPA and the flash memory contains an erased or
unprogrammed memory page inside the memory region specified by the image size field
in the image header, the device does not automatically enter into ISP mode using the
fallback mechanism, as in the case of a failed boot for an invalid image. This problem
occurs when the application image is only partially written or erased but a valid image
header is still present in memory.
Work-around
Perform a mass-erase to remove the incomplete and corrupted image using one of the
following methods:
• Execute the erase command using Debug Mailbox. The device will enter directly into
• Enter into ISP mode using the Debug Mailbox command and use the flash-erase
• Reset the device and enter into ISP mode using the ISP pin. Use the flash-erase
This issue occurs on device revisions 0A and 1B.
3.6 ROM.6: ROM fails to respond to debug session request on version 0A
parts
Introduction
Debugging is supported through Arm's Serial wire Debug (SWD) interface, enabling
debug with a range of debug probes and tools from NXP and other ecosystem partners.
Debug access by a remote host is controlled by the LPC55S6x ROM and is only enabled
when permitted through the device configuration and when the correct protocol is followed
to initiate a debug session.The Boot ROM implements a debug mailbox protocol to
interact with host debug systems over the SWD interface. For LPC55S6x, if the device
has been configured for debug authentication, then a debug session must be initiated
following the correct authentication sequence.
LPC55S6x
Errata sheet LPC55S6x
command.
command to erase the corrupted (incomplete) image.
Problem
For the LPC55S6x, a new method of initiating a debug session was introduced, as
documented in the current user manual. However, when used on 0A parts, a debug
system attempting to connect could become stuck in an endless loop because the ROM in
that silicon revision fails to issue a corresponding response to the new debug session
request.
Work-around
It is possible to determine whether the cause of the hang during a debug session request
is related to the part revision by detecting whether an overrun condition is reported via the
debug mailbox, which is only generated by the newer parts and not by the older 0A
version. The pseudo code below is a modified version to replace that shown in Chapter
51.6.1 of the user manual, implementing a check for silicon revision when connecting to
LPC55S6x parts:
// Read AP ID register to identify DM AP at index 2
WriteDP 2 0x020000F0
// The returned AP ID should be 0x002A0000
value = ReadAP 3
print "AP ID: ", value
// Select DM AP index 2
// Select CSW register [BJS]
WriteDP 2 0x02000000
// Write DM RESYNC_REQ + CHIP_RESET_REQ
WriteAP 0 0x21
// Poll CSW register (0) a offset 0x00 for zero return, indicating success
value = -1
while value != 0 {