I'm fairly new to the embedded world, so forgive me if this seems obvious.
I'm working on a board based off of the AT91SAM9260. I have 256MB of flash and 64MB of RAM. The current setup flashes two uImages. The first if a RAMDISK only recovery image, and the second is the main uImage. The first is used to flash rootfs.ubifs onto /dev/mtd1 for the main uImage.
One of the problems I'm encountering is running out of memory while flashing the rootfs from the recovery image. Depending on the size of the rootfs, it runs out of memory while flashing. I'm using TFTP to pull the image over onto the device and flash it. So, it must reside in memory along with the recovery uImage.
Is there a more efficient way of doing this perhaps? While the goal is to keep our rootfs small, obviously, given it's going onto an embedded device, some of our customers have different needs and don't mind some more of the flash being taken up by the OS.