Hi,
here is an example from https://community.nxp.com/servlet/JiveServlet/download/427962-1-279359/bootloader.zip :
It's for MPC5634M, but it doesn't matter, it's about principle:
Linker file of bootloader can be updated in this way:
Only first 64KB is used for the bootloader. It occupies the first location of RCHW, so the bootloader will be always started after reset.
Linker file of user application can be updated like this:
... so it occupies rest of the flash (everything above first 64KB).
You do not need to jump to the user application directly in the startup files. You can do that in main function. Just use pointer to function. But I strongly recommend to put everything back to default reset state before jump and also disable all interrupts (if some were enabled) - by local enable bits in peripherals, by MSR[EE] and also by priority registers. This is very important and it can eliminate a lot of troubles.
Regards,
Lukas