We manufacture a field programmable device. We don't use P0.14 - Rather we use the IAP instructions to "destroy" the first block of Flash. On the next boot up the program automatically jumps to the Boot loader because it doesn't detect a valid program. This feature is only activated with a secure code, and p0.14 is imbedded deep in epoxy - which makes it a little harder to pirate. The 210x series has no code protection, but the 213x series does. If you write your own boot loader you should be able to make a completly secure system with the 213x series. DES C source code fo encryption and decryption is freely available (I can send you some if you need it). Owen Mooney Message: 7 Date: Sun, 13 Feb 2005 10:18:08 -0000 From: "penaso_maria" <penaso_maria@...> Subject: A newbie asks before buying After reading many posts in the forum, I would like to ask you a couple of questions that would help me and I think others too. My goal: *Upgrade the LPC2124 firmware after selling the device. I think this is called in field. *Have any kind of security with respect to the file I will send to my clients in order to protect my code (encryption?). The possibilities I imagine are: 1) I use the Philips LPC2000 Flash utility, or the lpc21isp program to load the new firmware. Questions: 1-a) Isn't it unsafe from the code protection point of view? I think the file I send to the client can be converted back to code and someone else could use it for his/her benefit. 2) I could divide my code in two parts, one that would never be cleared, and the other with the part to upgrade in the future. The first part could have an algorithm to open and understand the encrypted firmware upgrade file. The procedure could be: The upgradeable part could include a code to let the user ask for a firmware upgrade. Upon this event, this code transfers the control of the processor to the fixed part, which starts the firmware upgrade process. Once finished, the fixed part jumps to the start of the new firmware memory block, and the "NEW" equipment would be ready to work. Questions: 2-a) Is it possible to generate a code that stores part of the program starting on a specific memory address? How is that done? I though in writing the new code starting in a fixed address, but I need all the new code continuous in memory to write it properly and in empty locations. 2-b) Can I clear part of the flash memory by Bytes, blocks, etc? How do you perform it? 2-b) How could the former procedure be done? I think the user could start the firmware upgrade process, and the LPC2124 could read the new code from a flash card or serially. What would be easier and safer? 2-c) Can I disable the debugging interface to avoid someone reading my first part of code? I understood that when the JTAG is disabled no one can reads the memory with "normal" approaches. 3) I code my own boot-loader with unencryption capabilities. Questions: 3-a) Any idea on this topic? I have no idea about it, but I read it is a good solution. Is there any sample program, AN, paper, etc, to help me here? I wait anxiously for replies. Maria ______________________________________________________________
Message
Re: [lpc2000] Digest Number 486
2005-02-13 by Owen Mooney
Attachments
- No local attachments were found for this message.