in this code where is the global pointer (x3) initialized to the proper value, note zero is not correct
typically this involves the variable _global_pointer$ created by the linker
https://github.com/Xilinx/embeddedsw/blob/master/lib/bsp/standalone/src/riscv/boot.S