PAR comnplained bitterly and insisted that I add the CLOCK_DEDICATED_ROUTE = FALSE constraint to the NET "E_RX_CLK" statement in spartan3e.ucf. After I did that, PAR succeeded.
I am using ISE 11.1
I simplified eth_dma.vhd to not use E_RX_CLK as a clock.