I have two SheevaPlugs. I recently used Martin Michelmayr's procedure to upgrade them to Debian Squeeze. ARP worked on the original network but both absolutely refuse to ARP when simply moved to another network (see separate thread if you're interested). Since no solution has emerged from my experiments or responses to my original post, I decided to try to cross build the kernel, get it running, and then put kprintf's in the ARP code to try to debug the problem. I used the instructions from here (may be slightly stale but they're the best I could find) to build the latest stable kernel: http://computingplugs.com/index.php/Building_a_custom_kernel#Getting_U-Boot.27s_mkimage

I cross built the kernel with the CodeSourcery tool chain and then copied uImage and lib/modules to the plug's SD card. Here is the interesting output from the not-so-excellent results. Any suggestions? Note: I can switch the SD card to one that I didn't copy the newly build components to and then the plug boots fine. This fact should resolve any suspicions about my u-boot boot parameters.

The Michlmayr procedure is excellent. But if you rebuild a different kernel after using it, you have to modify u-boot parameters to ignore the uInitrd that came with the Debian upgrade. Otherwise, the kernel and the uInitrd image are both invoked and the new kernel is incompatible with the stale uInitrd.