
On Thursday 15 March 2012 23:36:34 Eric Nelson wrote:
I do see a potential problem with eth.c iff CONFIG_API is set, but I'm unfamiliar with this API. It appears to me that this declaration needs to be aligned, with or without the PKTALIGN change or it won't be usable with DMA since PKTSIZE is unlikely to be cache line or DMA friendly at 1518 (0x5EE) bytes.
static struct { uchar data[PKTSIZE]; int length; } eth_rcv_bufs[PKTBUFSRX];
It appears that the CONFIG_API macro is only defined for PMC440. Is this supported for other machines?
CONFIG_API is the new standalone api. it uses a syscall-like approach to maintaining compatibility unlike the current standalone api which breaks easily.
however, this struct is used only internally. the exposed function calls are unchanged. so changing the size of the buffer is OK generally speaking.
there is a slight behavior change though. if you look at the funcs, they only accept buffers that are smaller than PKTSIZE bytes. i'm not sure we care about this detail though. i think the max size you can send is arbitrary and was designed just so you could get a frame's worth of data at a time, so as long as that ceiling isn't violated, it's OK. -mike