It is possible to change the boot source via software using the system controller in Linux and you can modify registers to change the boot mode. For the first option, I suggest using the Linux iMX Reference Manual section 2.2 System Controller and for the second option, you will need to read iMX8M Plus Reference Manual section 6.5.2.6 Boot Mode Control.
It is right. Additionally, you will need to check the Security Reference Manual (NDA required) to work with the eFuses and change the boot mode. Finally, if you want, you can use another source to change the default boot via software as a microcontroller connected to BOOT MODE pins.