Hi Bob,
Bob Walker wrote:
. . . field upgrading is not possible if it is protected.
There is a way, but it's a little ugly, and it only works if you have enough ram.
Since you can do a mass-erase from firmware, the entire flash can be erased if the entire "bootloader's bootloader" is loaded and run from ram. I update my bootloader by updating the normal firmware with bootloader-update firmware that, when it runs, moves itself to ram, mass-erases flash, and then programs the new bootloader. But it's only feasible because I have 4k of ram. With less ram, I would probably move just the main update program and an SCI driver to ram, and send the new boot-code, and possibly overlays, through the serial port. This can accommodate a larger bootloader.
The downside of this approach is that, if your not careful, the update procedure can brick your mcu. Fortunately, I can un-brick them with a BDM, if it is sent back to me. I haven't had that problem yet, as I've haven't needed to update a bootloader in the field.