I have made a bit more progress. The ethernet problem was a phy problem. The Rex project and our board use the Micrel KSZ9021 Ethernet Phy, which is different than the phy on the SabreSD. I merged in the initialization code from the SabreLite board file, and now the ethernet works. u-boot 2013.04 can now fully boot the 3.0.35 kernel, and the 3.10.17 kernel starts to boot, but it eventually hangs.
U-Boot > bootm 0x10800000 - 0x12000000
## Booting kernel from Legacy Image at 10800000 ...
Image Name: Linux-3.10.17
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4412856 Bytes = 4.2 MiB
Load Address: 10008000
Entry Point: 10008000
Verifying Checksum ... OK
## Flattened Device Tree blob at 12000000
Booting using the fdt blob at 0x12000000
Loading Kernel Image ... OK
OK
Read SW1AB error!
Loading Device Tree to 4f55b000, end 4f56984a ... OK
Starting kernel ...
Booting Linux on physical CPU 0x0
Linux version 3.10.17 (dprice@ubuntu) (gcc version 4.6.2 20110630 (prerelease) (Freescale MAD -- Linaro 2011.07 -- Built at 2011/08/10 09:20) ) #1 SMP Tue May 6 19:17:39 PDT 2014
CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: Freescale i.MX6 Quad/DualLite (Device Tree), model: Freescale i.MX6 Quad SABRE Smart Device Board
cma: CMA: reserved 256 MiB at 3e000000
Memory policy: ECC disabled, Data cache writealloc
....
mxc_sdc_fb fb.32: register mxc display driver lcd
mxc_sdc_fb fb.32: ipu0-di0 already in use
mxc_sdc_fb: probe of fb.32 failed with error -16
mxc_sdc_fb fb.33: register mxc display driver ldb
imx-sdma 20ec000.sdma: no iram assigned, using external mem
imx-s
That last line is where it hangs in the middle of printing. Since we aren't really using a display currently, perhaps the display driver is hanging.