This error happens when functions are located in a memory location more than 256MB apart from the main memory because the Nios II compiler uses the call instruction which has 256MB boundary limitation.
There are two workarounds to this issue:
1) In ACDS version 13.1, the -relax-all option is implemented to use the callr instruction instead of call instruction. In Software Build Tools for Eclipse, add the -Wa,-relax-all option in the Application or BSP properties as user flags.
This workaround may impact the software performance as callr instruction uses more assembly instructions compared to the call instruction.
2) The call instruction does not compute the MSB 4 bits of the address , hence the 256MB boundary limitation. Locate the memories so that the MSB 4 bits of the memory base addresses are the same, to make sure the functions are within 256MB boundary.
Eg. SDRAM : 0x10000000 , onchip memory : 0x12000000
or SDRAM : 0x08000000, onchip memory : 0x02000000