• Connect the micro USB cable between PC and P6 link on the board while pressing and holding down ISP button.
• Download compiled executable file.
• Release ISP button after the download is successful.
3. Run
Reset the board to run by pressing the Reset (S4) button on the board.
4. Result
Two LEDs are used in this example. Blue LED indicates the pin state is read by normal GPIO, whereas green LED indicates
the pin stateis read by Secure GPIO. After reset, code is running in Secure world, and it initializes the system including
above two LEDs, and then it jumps to Non-secure world. In Non-secure world, it reads P0_5 pin (ISP button/S1 on EVK)
via both normal GPIO and Secure GPIO and the pin state it reads is 1 since this pin is pulled up externally by default. P0_5
will be read as 0 when ISP button is pressed and hold down, If P0_5 is 0, it turns on the blue LED and green LED as now
both normal GPIO and Secure GPIO read all 0 from this pin.
Press USER button (S3), it jumps to Secure world, toggle Secure GPIO Mask, and then jump back to Non-Secure world.
Press WAKEUP button (S2), it will jump to Secure world, make Secure GPIO Secure, and then jump back to Non-secure
world. At last, it tries to access the Secure GPIO from Non-Secure world, because of Secure access violation, it enters
Hard Fault. The following figure simply depicts its control flow:
Figure 16. Flow of Secure GPIO example
5 Conclusion
The example shows that Non-secure world can access a peripheral pin state regardless of the pin function and whether the
peripheral function is Secure or Non-secure. It results in Secure information leakage. To prevent, a Secure GPIO must be used
and it shall be configured and used in Secure world. Whereas, the normal GPIO shall be used in Non-secure world. Same rules
apply to Secure PINT and normal PINT.
6 Revision history
Revision
Date
Substantial Changes
0
15/01/2019
initial version
NXP Semiconductors
Conclusion
LPC55S6x Secure GPIO and Usage, Rev. 0, 15 January 2019
Application Note
11 / 12