Logic MCF5485EVB with Linux BSP (v2.6.10); NFS problems and bus clock speed....

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Logic MCF5485EVB with Linux BSP (v2.6.10); NFS problems and bus clock speed....

1,357 Views
jkimble
Contributor III

After many weeks of effort I am finally up and running with Linux on a custom board that is a close (well, similar) copy of the Logic MCF5485EVB evaluation board. All peripherals are working and it's definately a thing of beauty!

The very last problem I encountered was so odd that I wanted to post it here in case someone else encounters this. I had to make many changes to the colilo boot loader and to the kernel to get things to begin to boot. I got to the point where everything seemed to be coming up but the boot process would halt at the point of starting the web server. It would simply stop and go no further. The solution to this problem turned out to be an issue with a fault mask of the FEC (FEC_FECTFCR_MSK) allowing the FEC to ignore underflow errors (Thanks Ken, I'd have never found that one). That allowed my board to boot up to a shell prompt but, though many things worked at this point, programs that needed to write back to the NFS mounted file system would not work (adduser, passwd, etc). Also I was seeing many "NFS not responding" and timeout messages. It would often take over a minute for the boot process to complete because the network services were taking so long. Obviously NFS was not stable but all my configurations on both my development server and on the embedded side were correct. Experimenting with various r/w packet sizes, tcp Vs udp, other nfs settings yielded no real improvement.

My custom board was designed to run at 172MHz from a 43MHz clock whereas the evaluation board was running at 200MHz with a 50MHz clock. Though I didn't think it would help my network problem I wanted to get some extra speed so I replaced the 43MHz clock on my board with a 50MHz making it the same as the evauation board. To my complete surprise this corrected my NFS problems! No idea why or how. I wish I did know how this could effect NFS but for now I'm happy to have a working system. Still, not understanding is bad. I'd have never done this to fix the NFS problem I  was simply looking for more performance from the board.

If anyone has an explanation I'd love to hear it. For anyone else just keep in mind my experience in working with this Linux BSP for the MCF5485EVB. It obviously has some sensitivity to clock speed (other than the console baud rate of course).


Labels (1)
0 Kudos
2 Replies

313 Views
klaus
Contributor I
I think I figured this one out... posting here on the off-chance someone runs into this again and does a search :smileyhappy:

Had pretty much the same issue, MCF5480 @ 160MHz on a custom board, kernel 2.6.10, flaky NFS root fs no matter what i did to the settings.

In the end I traced it down to large (1514 byte) outgoing packets just disappearing somewhere in or below the FEC driver. Lowering the MTU to below 1k made everything work fine.

It seems the FEC buffer underruns on outbound packets that are larger than its FIFO, which in turn points to the DMA not transferring the remaining bytes fast enough at sub-demoboard clock speeds.

Raising the transmit watermark and alarm levels to 512k fixed the issue:

#define   FEC_FECTFAR_ALARM                 (0x200)
#define   FEC_FECTFWR_XWMRK                 (0x00000007)

Of course, this is kindof dependent on the clock speed.


Message Edited by klaus on 2008-03-07 07:12 PM
0 Kudos

313 Views
kwong
Contributor I
I'm glad you're up and running... I've been in the same position that you were just in and it definitely can be frustrating. :smileyhappy:

Ken
0 Kudos