OK, I must be doing something wrong when building the kernel or with the debian rootfs.
I downloaded the dream-3.0.9-uImage from http://sheeva.with-linux.com/sheeva/3/3.0/3.0.9/
and it works with the stock ubuntu rootfs. I cannot boot my rootfs with that kernel image because it doesn't have sata support built in and my uboot doesn't support HD (for loading the kernel), that's why I have build my own kernel in the first place. As said in the first post, I have copied the firmware files from the ubuntu rootfs to the debian one.
What I did to compile the kernel:
* Download kernel sources and patches from http://sheeva.with-linux.com/sheeva/3/3.0/3.0.9/source/
* Applied all the patches
* Copied dream-3.0.9.config to the kernel build directory as .config
* change line SATA_MV=m to SATA_MV=y
* cross-compile kernel and modules