[U-Boot] UBoot NFS timeout

I'm having trouble booting my linux image over a nfs share. The share is on an openSuse 11 server. I am able to mount the folder on a centOS machine and copy the file over the network so I believe it is setup properly. My UBoot output is
File transfer via NFS from server xxx.xxx.50.21; our IP address is xxx.xxx.50.15 1 Filename '/root/Desktop/susenfs/bootme4linux.bin'. Load address: 0x80000000 Loading: ################################################################# #Timeout
When I try a nfs share on the CentOS machine it times out immediately.
Anyone ever seen this?
UBoot 1.2.0, however the NFS code is the same.
Is the the correct way to activate NFS in my uboot image?
#define CONFIG_COMMANDS ( \ CONFIG__CMD_DFL | \ CFG_CMD_NET | \ CFG_CMD_PING | \ CFG_CMD_MII | \ CFG_CMD_DHCP | \ CFG_CMD_MEMORY | \ CFG_CMD_NFS)

Hi Christopher,
christopher.mcnamara wrote:
I'm having trouble booting my linux image over a nfs share. The share is on an openSuse 11 server. I am able to mount the folder on a centOS machine and copy the file over the network so I believe it is setup properly. My UBoot output is
File transfer via NFS from server xxx.xxx.50.21; our IP address is xxx.xxx.50.15 1 Filename '/root/Desktop/susenfs/bootme4linux.bin'. Load address: 0x80000000 Loading: ################################################################# #Timeout
When I try a nfs share on the CentOS machine it times out immediately.
Anyone ever seen this?
UBoot 1.2.0, however the NFS code is the same.
Is the the correct way to activate NFS in my uboot image?
#define CONFIG_COMMANDS ( \ CONFIG__CMD_DFL | \ CFG_CMD_NET | \ CFG_CMD_PING | \ CFG_CMD_MII | \ CFG_CMD_DHCP | \ CFG_CMD_MEMORY | \ CFG_CMD_NFS)
What processor and Ethernet controller are you using? NFS initially bursts a lot of full-size frames and if your MAC can't keep up you'll have trouble connecting. Try limiting the read block size on the client by specifying 'rsize=' parameter.
regards, Ben

It is a microblaze on a Xilinx Virtex 5. Not sure what the MAC is unless it is built into the VITESSE vsc8211 PHY...
The only code on the machine at this time is the UBoot 1.2 image, no linux kernel.
I was led to believe by the documentation that I could boot the whole image via nfs, I am faced with a situation where tftp is not allowed so I was thinking this could be the alternative. (I have a working linux image, I am just looking for an alternative route to get it to the board.)
My command is nfs 0x80000000 xxx.xxx.50.21:/root/Desktop/susenfs/bootme4linux.bin
For what you are saying with the rsize= parameter I wouldn't use this command but rather change the bootargs parameter like this...
setenv bootargs root=?? rw nfsroot=177.174.50.21:/root/Desktop/susenfs/bootme4linux.bin,rsize=512,wsize=512,nolock ip=177.174.50.151
and then do a
loadb
Without the kernel there what would my root= parameter be?
On Wed, Apr 22, 2009 at 2:05 PM, Ben Warren biggerbadderben@gmail.com wrote:
Hi Christopher,
christopher.mcnamara wrote:
I'm having trouble booting my linux image over a nfs share. The share is on an openSuse 11 server. I am able to mount the folder on a centOS machine and copy the file over the network so I believe it is setup properly. My UBoot output is
File transfer via NFS from server xxx.xxx.50.21; our IP address is xxx.xxx.50.15 1 Filename '/root/Desktop/susenfs/bootme4linux.bin'. Load address: 0x80000000 Loading: ################################################################# #Timeout
When I try a nfs share on the CentOS machine it times out immediately. Anyone ever seen this?
UBoot 1.2.0, however the NFS code is the same.
Is the the correct way to activate NFS in my uboot image?
#define CONFIG_COMMANDS ( \ CONFIG__CMD_DFL | \ CFG_CMD_NET | \ CFG_CMD_PING | \ CFG_CMD_MII | \ CFG_CMD_DHCP | \ CFG_CMD_MEMORY | \ CFG_CMD_NFS)
What processor and Ethernet controller are you using? NFS initially bursts a lot of full-size frames and if your MAC can't keep up you'll have trouble connecting. Try limiting the read block size on the client by specifying 'rsize=' parameter.
regards, Ben

Hi Christopher,
Please don't top-post.
Christopher McNamara wrote:
It is a microblaze on a Xilinx Virtex 5. Not sure what the MAC is unless it is built into the VITESSE vsc8211 PHY...
I've never used this configuration, but assume it's using some kind of Xilinx-provided soft MAC. It probably doesn't matter much anyway.
The only code on the machine at this time is the UBoot 1.2 image, no linux kernel.
I was led to believe by the documentation that I could boot the whole image via nfs, I am faced with a situation where tftp is not allowed so I was thinking this could be the alternative. (I have a working linux image, I am just looking for an alternative route to get it to the board.)
My command is nfs 0x80000000 xxx.xxx.50.21:/root/Desktop/susenfs/bootme4linux.bin
For what you are saying with the rsize= parameter I wouldn't use this command but rather change the bootargs parameter like this...
setenv bootargs root=?? rw nfsroot=177.174.50.21:/root/Desktop/susenfs/bootme4linux.bin,rsize=512,wsize=512,nolock ip=177.174.50.151
and then do a
loadb
Without the kernel there what would my root= parameter be?
No, I don't think this is what you want to do. You want to use the 'nfs' command. I confess I've never used it so can only help by code inspection. It appears that U-boot sets the read size to 1024, which is much smaller than the 4k or 8k block size that you'd run into using a regular NFS mount.
Anyway, something else to try is to throttle your network speed by forcing your PHY to 10/half. You should be able to do that with the miiphy commands. Your MAC will surely be able to keep up with it and this will tell you if the problem is really due to throughput. The downside is that things will seem reeaaallllyy slllloooowwww.
regards, Ben
participants (3)
-
Ben Warren
-
Christopher McNamara
-
christopher.mcnamara