Hello, Please forgive me if answers to my questions are obvious, I'm new to U-Boot.
I'm trying to port the Ethernet driver for Intel IXP4xx CPU from Linux (I know there is Intel's code already ported). I've read the doc/README.drivers.eth. I came across some problems: - dev->halt() seems to be called before the first call to dev->init() (i.e., before the hardware is initialized). Is it on purpose? - dev->recv() seems to be called recursively, for example while doing "dhcp" or "bootp" (ping is ok). dev->recv() in my driver calls NetReceive(), which in turn (without returning to the caller, i.e., dev->recv(), first) reinitializes the driver on error (calls dev->halt() and dev->init()). This makes a lot of mess in the driver, should it stay this way? Perhaps we should queue the received packets and process them on return from dev->recv()? Or maybe return all those packets together? - dev->recv() is provided with RX packet buffers. IXP4xx can only receive to already allocated memory so the driver has to provide it's own buffers prior to dev->recv(). I assume it's common situation with all hardware recent enough. Does the driver have to copy data to NetRxPackets[], or is it ok to simply call NetReceive using driver's buffers? -- Krzysztof Halasa _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot