Take the project called "unhosted" from [here] (http://www.altera.com/support/examples/soc/soc.html) to use it as a reference one. You can compare your linker script and this one with any diff program to find some differences. Also the file io.c from the example is useful for standalone applications to redirect printf() output to UART instead of JTAG.
In mkimage command you should write -e 0x100040 instead of -e 0x0 to force application to execute from entry point. It helped me. Today I can run both preloader and application from NAND flash on our custom board (at last!) so it works.
Hope it helps to you too.