Found how the jump code works..
1) The registers to be taken care of are => SRC_GPR9 and SRC_GPR10.
2) SRC_SBMR1 is the register that determines the boot device
3) The concept of ROM is, after reset, if SRC_GPR10[28] is set, ROM will copy SRC_GPR9[25:0] to SRC_SBMR1.
4) So inorder to jump from SPI to other boot devices, an appropiate value must be written in SRC_GPR9 register and set the 28th bit of SRC_GPR10 register and make a software reset. (This is what happens in jump code)
5) Now ROM will check 28th bit of SRC_GPR10 register. It is set. So it copies SRC_GPR9[25:0] to SRC_SBMR1, that will determine the boot device.
Please refer to the fusemap section of imx6 application processor reference manual to determine what values must be written to SRC_GPR9 register for various boot devices.
For more details, refer:
http://boundarydevices.com/running-linaro-ubuntu-on-i-mx6-sabre-lite-and-nitrogen6x/
[U-Boot] [PATCH 1/3] common/cmd_rsmode.c: add imx reset mode command