If building XIP image for using with uBoot (example OMAP2430 board) then uBoot can't execute is, while uImage is running normally from RAM. The cause of it is that uBoot needs 64 byte header to be added by mkimage (along with correction of CONFIG_XIP_PHYS_ADDR for the same length). In case of xipImage this header is added normally, while xipImage misses it because xipImage is not aware of uBoot specifics. Likely additional target xipuImage is needed, or may be additional config such as CONFIG_UBOOT_ADD_HEADER.
Archive thread on this issue: http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2004-December/025674.html
It's a shame that uboot people don't come to their senses and teach everyone how to use their 'mkimage' command to put their special header for their boot loader into the image. In any case, this is *not* a bug. If anything, it's a missing feature, and its something that I question. It needs discussing on the ARM mailing list and not in bugzilla. Ergo, rejecting "missing feature".