I've recompiled u-boot and wrote the image to the sd card using:
sudo dd if=u-boot.imx of=/dev/sdb bs=512 seek=2 &&sync
I've never had problems with this before, but despite several attempts, when i boot my board it continues to use the previous version of u-boot. My understanding is that the processor pulls the u-boot into ROM on the processor itself but it somehow updates the ROM image when the image has changed on the SD card. I'm not sure if that's how it really works, but I can see that it is not loading the latest image. I know this because I changed several things in the board.h and board.c files, as well as changed the freescale.bmp image. i've done these same things on previous builds but for some reason, the new image simply isn't loading, and the old image, which couldn't possibly still be on the sd card (i've overwritten the entire drive with dummy data before running dd to write the new image) keeps loading. I only have one SD slot (the other is my wifi module), and no external NV memory (i.e., no NAND, eMMC, or NOR FLASH).
How can this be happening and how do I force the u-boot image to use the newest version on my SD card?