Hello Martin Due
A secondary bootloader seems a good option. It is a small piece of code immediately running after the hardware boot process. It works like the normal software, but only dealing with some customized tasks before the user software.
You can use this AN https://www.nxp.com/docs/en/application-note/AN12384.pdf to design one that works with USB. To do this you can refer to "chapter 3: LPC546xx Boot process"
In the SDK Welcome | MCUXpresso SDK Builder you can find a DFU example, what this example does is write the firmware content of the USB DFU to flash or ram and will check the CRC32 which stored in the last 4 bytes of the firmware. if the CRC32 check is right, then the dfu example will run the new firmware.
Let me know if this is helpful, if you have more questions do not hesitate to ask me.
Best regards,
Omar