summaryrefslogtreecommitdiff
path: root/doc/README.drivers.eth
diff options
context:
space:
mode:
authorWolfgang Denk <wd@denx.de>2010-05-04 22:57:37 +0200
committerWolfgang Denk <wd@denx.de>2010-05-04 22:57:37 +0200
commit679ec154620eaf377143ba429124abc91abed0eb (patch)
treef61ddb23bb663722a42728f641663ff0f9fd857d /doc/README.drivers.eth
parent900a1fe8c8c7acda1d8903af02c2d0d993b770d8 (diff)
parent4324dc72df5879e5b614c4a3f326884723ede9b7 (diff)
downloadu-boot-imx-679ec154620eaf377143ba429124abc91abed0eb.zip
u-boot-imx-679ec154620eaf377143ba429124abc91abed0eb.tar.gz
u-boot-imx-679ec154620eaf377143ba429124abc91abed0eb.tar.bz2
Merge branch 'master' of git://git.denx.de/u-boot-net
Diffstat (limited to 'doc/README.drivers.eth')
-rw-r--r--doc/README.drivers.eth7
1 files changed, 6 insertions, 1 deletions
diff --git a/doc/README.drivers.eth b/doc/README.drivers.eth
index d0c3571..eb83038 100644
--- a/doc/README.drivers.eth
+++ b/doc/README.drivers.eth
@@ -70,6 +70,7 @@ int ape_register(bd_t *bis, int iobase)
dev->halt = ape_halt;
dev->send = ape_send;
dev->recv = ape_recv;
+ dev->write_hwaddr = ape_write_hwaddr;
eth_register(dev);
@@ -102,11 +103,12 @@ not checking its state or doing random probing.
-----------
Now that we've registered with the ethernet layer, we can start getting some
-real work done. You will need four functions:
+real work done. You will need five functions:
int ape_init(struct eth_device *dev, bd_t *bis);
int ape_send(struct eth_device *dev, volatile void *packet, int length);
int ape_recv(struct eth_device *dev);
int ape_halt(struct eth_device *dev);
+ int ape_write_hwaddr(struct eth_device *dev);
The init function checks the hardware (probing/identifying) and gets it ready
for send/recv operations. You often do things here such as resetting the MAC
@@ -150,6 +152,9 @@ The halt function should turn off / disable the hardware and place it back in
its reset state. It can be called at any time (before any call to the related
init function), so make sure it can handle this sort of thing.
+The write_hwaddr function should program the MAC address stored in dev->enetaddr
+into the Ethernet controller.
+
So the call graph at this stage would look something like:
some net operation (ping / tftp / whatever...)
eth_init()