As seen in this discussion thread:
https://sourceforge.net/p/sdcc/discussion/1865/thread/950b2bb3/
there is a problem with specifying the location of code for z80:
Some library modules use HOME instead of CODE. Since the command line to the linker passes libraries first (before a custom crt0), hte linker does not use the order from the crt0. This results in code being placed at address 0, even when the user specifies a code location > 0.
Philipp