Flash Security Clarification
2005-12-23 by philips_apps
Hope this answers all the questions raised on Flash security. Many thanks to the group users. We appreciate your feedback. Please keep it coming. Most of us are out till Jan 2 due to year end shutdown. Happy Holidays and a Happy New Year - Philips Microcontroller Team 1) Am I right in assuming LPC2000 CRP is a software fence implemented in the supplied boot loader code? Partially. It is a combination of Hardware and Software supplied in the bootloader code. Application running in micro has full access to the entire memory space. 2) I am going to replace the Philips bootloader. I have figured out how to do it. Replacing the Philips bootloader is not recommended. It hides the underlying hardware and allows Philips to use new flash technologies without impacting the end user. Philips Bootloader may reside in ROM or write/erase protected flash making replacement impossible. In LPC2101/2/3 the bootloader resides in on-chip ROM. 3) How is Bootloader programmed for the first time? Via JTAG on a tester. JTAG is accessible in virgin devices. Once bootloader is programmed and CRP is enabled the tester can't access the JTAG. 4) CRP in devices with internal flash and external bus. The bootloader prevents external boot if CRP is enabled. User Application residing in on-chip flash which needs to be protected should not execute code from external memory. 5) Can bootloader write/erase itself? No. 6) Can bootloader get corrupted? Very unlikely if IAP/ISP calls are used for flash programming. Very likely if Flash programming interface registers are directly accessed for flash programming. 7) Can Philips comment if Quick-Pulse parallel programming can void CRP? First of all there is no Quick-Pulse parallel programming option for ARM based micros. We are sorry for not making clear what is meant by "Parallel Programming" for ARM based micros. Parallel programming for ARM based micros just means that the device can be mass programmed in a commercial programmer. Parallel programmers still use JTAG and/or ISP and go through the bootloader IAP routines to program the on-chip flash. It does not matter how a part is programmed. If CRP is enabled it will remain enabled once the part is programmed. If CRP is enabled a parallel programmer can't access the flash unless it erases the whole flash. Same applies to the ISP utility and JTAG based debuggers. 8) Is CRP option available for 2104/05/06? Not yet. 9) Devices with external memory bus can be forced to boot from external memory? ONLY if CRP is NOT enabled or NO internal flash present. Also see (4). 10) Can I tell client Philips has confirmed CRP is not voided by PP? Yes. Also see (7). 11) How do I reprogram a CRP enabled part? Erase all user sectors in one go via ISP. You can reprogram it after a power cycle. Please note that the protected code vanished and was not visible to a "spy" or "preying eyes".