Note: this is not about using nfs for the rootfs or using tftp to download a kernel.

U-boot is based on v2017.11, the board is custom but similar to the imx6dl-sabresd.

I've set CONFIG_CMD_NFS=y in .config. I have a working nfs server on an Arch Linux host. I can mount the nfs share as my rootfs.

My nfs share is at /srv/nfs/foo, and /etc/exports.d/foo.exports looks like

/srv/nfs/foo *(rw,async,no_subtree_check,no_root_squash)

When I try to do e.g. nfs $loadaddr $nfsroot/boot/zImage, it just keeps printing T for timeout. (nfsroot=/srv/nfs/foo to match the export.) The file exists on the share and the network is working (ping $serverip works).


I needed to enable udp on the nfs server. On Arch Linux, this is in /etc/nfs.conf:


I don't have any other customization (other than exports).

Looking into this it seems like newer versions of nfs (for reference, I'm using nfs-utils 2.3.1) disable udp by default, but apparently u-boot needs udp support.

| improve this answer | |
  • Correct, at this point in time we do not support TCP for NFS, only UDP, so you must have that enabled on the server. – Tom Rini May 25 '18 at 1:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.