I have a beaglebone black placed in a sealed box. And I have two operating systems(QNX and debian). I have to switch between them by using ethernet or serial port because it is not possible to insert an SD Card since it is located in a sealed box. I succeeded loading QNX ifs file by using u-boot via tftp . Here's how:
setenv ipaddr 192.168.0.2
setenv serverip 192.168.0.1
tftp 0x81000000 if-ti-beaglebon.bin
setenv uenvcmd mmcinfo
setencv fatload mmc 0x81000000 ifs-ti-beaglebone.bin
Once the board booted up,I copy the full image of emmc(20mb) that I took before to tmp. I do this by using QNX Momentics IDE which allows me to drag and drop files(using qconn). Then I format the emmc and load the image:
dd if=/tmp/my_qnx_image of=/dev/emmc0 conv=notrunc
I am not sure about if this is the right procedure to follow but it works for QNX.
My problem is I cannot do this for linux. Because the image I have is 3.7 gb. In u-boot phase, the files that are transferred via tftp are storred in RAM which is 512 mb.. I actually can load the image with sd card but when I test this with another beagle. I cannot use this approach with the final product.
Is there a way to load a big image ? For example can I use a file in a ftp server as "if" of a the dd command? Or is there a way to increase ram size up to 4 gb ? Or any other suggestions will be appreciated.