The on-chip block RAM is initialized using the logical (execution) address and not the physical (loading) address.
For instruction relocating, you can work around this problem by doing the following:
1. Put the output section into external non-volatile memory.
2. Then use a boot loader to relocate the section into external RAM.