iMX7 start uboot from ocram

I try to configure uboot to start from ocram. RM says, that OCRAM area starts from 0x0090 0000. In uboot config i add string:

define CONFIG_SYS_TEXT_BASE 0x00908000

Then i build uboot, put device into recovery mode and try to update. At this stage i have error:

Colibri iMX7 rootfs detected
Put the module in recovery mode and press [ENTER]...

config file <imx_flash/imx_usb.conf>
vid=0x066f pid=0x3780 file_name=mx23_usb_work.conf
vid=0x15a2 pid=0x004f file_name=mx28_usb_work.conf
vid=0x15a2 pid=0x0052 file_name=mx50_usb_work.conf
vid=0x15a2 pid=0x0054 file_name=mx6_usb_work.conf
vid=0x15a2 pid=0x0061 file_name=mx6_usb_work.conf
vid=0x15a2 pid=0x0063 file_name=mx6_usb_work.conf
vid=0x15a2 pid=0x0071 file_name=mx6_usb_work.conf
vid=0x15a2 pid=0x007d file_name=mx6_usb_work.conf
vid=0x15a2 pid=0x0076 file_name=mx7_usb_work.conf
vid=0x15a2 pid=0x0041 file_name=mx51_usb_work.conf
vid=0x15a2 pid=0x004e file_name=mx53_usb_work.conf
vid=0x15a2 pid=0x006a file_name=vybrid_usb_work.conf
vid=0x066f pid=0x37ff file_name=linux_gadget.conf
config file <imx_flash/mx7_usb_work.conf>
parse imx_flash/mx7_usb_work.conf
15a2:0076(mx7) bConfigurationValue =1
Interface 0 claimed
HAB security state: development mode (0x56787856)
== work item
filename colibri-imx7_bin/u-boot-nand.imx
load_size 0 bytes
load_addr 0x00000000
dcd 1
clear_dcd 0
plug 1
jump_mode 2
jump_addr 0x00000000
== end work item
main dcd length 1b4
sub dcd length 164
sub dcd length c
Check Data Command(10) success @307900c4=1c1 mask 1
sub dcd length 34
sub dcd length c
Check Data Command(10) success @307a0004=1 mask 1

loading binary file(colibri-imx7_bin/u-boot-nand.imx) to 00907000, skip=0, fsize=89000 type=aa
out err=-1, last_trans=0 cnt=0x3c00 max=0x400 transferSize=0x400 retry=0
out err=-4, last_trans=0 cnt=0x3c00 max=0x200 transferSize=0x400 retry=1
out err=-4, last_trans=0 cnt=0x3c00 max=0x100 transferSize=0x400 retry=2
out err=-4, last_trans=0 cnt=0x3c00 max=0x80 transferSize=0x400 retry=3
out err=-4, last_trans=0 cnt=0x3c00 max=0x40 transferSize=0x400 retry=4
out err=-4, last_trans=0 cnt=0x3c00 max=0x20 transferSize=0x400 retry=5
out err=-4, last_trans=0 cnt=0x3c00 max=0x10 transferSize=0x400 retry=6
out err=-4, last_trans=0 cnt=0x3c00 max=0x8 transferSize=0x400 retry=7
out err=-4, last_trans=0 cnt=0x3c00 max=0x10 transferSize=0x400 retry=8
out err=-4, last_trans=0 cnt=0x3c00 max=0x8 transferSize=0x400 retry=9
out err=-4, last_trans=0 cnt=0x3c00 max=0x10 transferSize=0x400 retry=10
Giving up
HAB security state: development mode (0x00000000)

I’m doing the right thing?

As far as I can tell, you are doing the right thing. The problem is likely that U-Boot does not fit into the destination OCRAM, and the boot ROM consequently crashes/refuses to download.

Internal OCRAM is only 128kb. Even when you add OCRAM EPDC and OCRAM PXP, you end up with 288kb of OCRAM. However, the file you are downloading is 561kb…