For anyone else who is stuck,
I had lots of issues because my TFTP server was on a different server to where DHCP is served from, I think U-boot expects the TFTP to come from the same source as DHCP server with the default settings.
here is my boot.scr.uimg:
setenv fdtfile sun8i-h2-plus-orangepi-zero.dtb
setenv serverip 192.168.1.209
setenv ipaddr 192.168.1.170
tftp ${kernel_addr_r} vmlinuz-4.19.17-sunxi
tftp ${fdt_addr_r} ${fdtfile}
tftp ${ramdisk_addr_r} uInitrd
usb start
setenv bootargs earlyprintk console=ttyS0,115200 ip=dhcp rootwait nolock rw nfsroot=192.168.1.209:/nfsboot/ubuntu/,v3 root=/dev/nfs rootdelay=7
bootz ${kernel_addr_r} - ${fdt_addr_r} ${ramdisk_addr_r}
and my /etc/export (NFS shares)
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/nfsboot 192.168.*(rw,sync,no_root_squash,no_subtree_check)
/nfsboot/ubuntu 192.168.*(rw,sync,no_root_squash,no_subtree_check)
#