How to configure Interrupt vector table ?

Hi,
I am using I.MX6Q Sabre sd board (cortex-a9 ). I am trying to build custom image with my own start script and ld script. The image is to be loaded with u-boot. Where should i place the Interrupt vector table? Now, when i reffered the "1.1.0_iMX6_Platform_SDK", The vector table was given as,


vectors:
     ldr pc, .Lreset_addr
     ldr pc, .Lundefined_addr
     ldr pc, .Lswi_addr
     ldr pc, .Lprefetch_abort_addr
     ldr pc, .Ldata_abort_addr
     ldr pc, .Lreserved_addr
     ldr pc, .Lirq_addr
     ldr pc, .Lfiq_addr
     .word 0

and is loaded at "ORIGIN(OCRAM) + LENGTH(OCRAM) - 72", ie at 0x0093ffb8, as,

    

     .ram_vectors (ORIGIN(OCRAM) + LENGTH(OCRAM) - RAM_VECTORS_SIZE) (NOLOAD) :
     {
     __ram_vectors_start = .;
     . += RAM_VECTORS_SIZE;
     __ram_vectors_end = .;
     } > OCRAM

and later copied to RAM in start script as,

     ldr r1,=__ram_vectors_start
     ldr r2,=__ram_vectors_end
     ldr r3,=vectors
1:  cmp r1,r2
     ldmlt r3!,{r4,r5,r6}
     stmlt r1!,{r4,r5,r6}
     blt 1b

But when i enable uart interrupt, it does not enter the ISR. Is there any problem with this approach? Where should i place the Interrupt vector table? I am attaching my linker script and the start scripts. This is my first time. Please help.

Note: i am using GNU toolchain(arm-none-eabi-) and not using any IDE.

10800.zip