All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] Net driver questions
@ 2009-11-01 23:07 Krzysztof Halasa
  2009-11-02  3:32 ` Mike Frysinger
  0 siblings, 1 reply; 6+ messages in thread
From: Krzysztof Halasa @ 2009-11-01 23:07 UTC (permalink / raw)
  To: u-boot

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-11-02 23:54 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-01 23:07 [U-Boot] Net driver questions Krzysztof Halasa
2009-11-02  3:32 ` Mike Frysinger
2009-11-02 15:08   ` Krzysztof Halasa
2009-11-02 22:53     ` Mike Frysinger
2009-11-02 23:38       ` Krzysztof Halasa
2009-11-02 23:54         ` Mike Frysinger

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.