lpc55-hal icon indicating copy to clipboard operation
lpc55-hal copied to clipboard

Test LPC bootloader signed update and secure boot

Open conorpp opened this issue 4 years ago • 3 comments

It would be great to evaluate the bootloader + signed updates using LPC55's ROM.

A good overview is given in AN12283.

I image successful (green) and failed (red) signed updates would follow these paths.

Screen Shot 2020-03-09 at 1 01 10 PM

And the application can have the ability to jump to the ISP/bootloader-rom to start the update process. The answer to this forum post makes it look pretty simple.

There are a few not-so-trivial things to configure.

  • The public key chain loaded into the bootloader ROM.
  • Other bits in CMPA + CFPA pages.

To access the latest "elftosb" and "elftosb-gui" tools, you need to download an MCUXpresso kit and make sure you have mcu-boot option enabled.

I have some not-easy-to-find documents giving good documentation + examples of configuring LPC55 with elftosb. Message me on Keybase (conor1) and I will send to you.

It would be great to be able to:

  • Create an example Rust program that can boot to bootloader ROM after receiving some event (like a USB command).
  • Create a demo that configures that configures the bootloader ROM.
  • Update the ROM with a signed update.
  • Update the ROM with an unsigned update (fail).
  • Maybe try revocation of a certificate?

Open to feedback!

(cc @jolo1581).

conorpp avatar Mar 09 '20 17:03 conorpp