[openfirmware] [commit] r2950 - dev/usb2/device/net

repository service svn at openfirmware.info
Wed Apr 25 01:26:41 CEST 2012


Author: wmb
Date: Wed Apr 25 01:26:40 2012
New Revision: 2950
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2950

Log:
ASIX USB-LAN driver - power off the PHY when closing the device, thus eliminating excess power consumption during S3 selftest in manufacturing.  The disadvantage is that subsequent opens take longer.  Test case:  ok select net unselect alarm-in-3 strp

Modified:
   dev/usb2/device/net/ax8817x.fth
   dev/usb2/device/net/common.fth
   dev/usb2/device/net/ethernet.fth

Modified: dev/usb2/device/net/ax8817x.fth
==============================================================================
--- dev/usb2/device/net/ax8817x.fth	Mon Apr 23 08:36:30 2012	(r2949)
+++ dev/usb2/device/net/ax8817x.fth	Wed Apr 25 01:26:40 2012	(r2950)
@@ -179,6 +179,11 @@
    d# 10 ms  \ Just in case the link status bit isn't ready just yet
 ;
 
+: ax-stop-phy  ( -- )
+   ax88772?  if
+      h# 40 ax-sw-reset    \ Power off internal PHY, reset external one (08 == 0)
+   then
+;
 : select-phy  ( -- )
    ax88772?  if
       \ Linksys USB200M uses the built-in PHY, DLink DUB-E100 uses an external one
@@ -316,6 +321,7 @@
    ['] ax-link-up?  to link-up?
    ['] ax-start-mac to start-mac
    ['] ax-start-phy to start-phy
+   ['] ax-stop-phy  to stop-phy
    ['] ax-stop-mac  to stop-mac
    ['] ax-get-mac-address to get-mac-address
    ['] ax-mii@ to mii@

Modified: dev/usb2/device/net/common.fth
==============================================================================
--- dev/usb2/device/net/common.fth	Mon Apr 23 08:36:30 2012	(r2949)
+++ dev/usb2/device/net/common.fth	Wed Apr 25 01:26:40 2012	(r2950)
@@ -23,6 +23,7 @@
 defer unwrap-msg       ( adr len -- adr' len' )	' noop to unwrap-msg
 defer link-up?	       ( -- up? )		' true to link-up?
 defer start-phy        ( -- )			' noop to start-phy
+defer stop-phy         ( -- )                   ' noop to stop-phy
 defer start-mac        ( -- ) 			' noop to start-mac
 defer stop-mac         ( -- )			' noop to stop-mac
 defer mii{             ( -- )                   ' noop to mii{  \ Acquire

Modified: dev/usb2/device/net/ethernet.fth
==============================================================================
--- dev/usb2/device/net/ethernet.fth	Mon Apr 23 08:36:30 2012	(r2949)
+++ dev/usb2/device/net/ethernet.fth	Wed Apr 25 01:26:40 2012	(r2950)
@@ -31,6 +31,7 @@
    stop-mac
    end-bulk-in
    free-buf
+   stop-phy
 ;
 
 external
@@ -41,7 +42,7 @@
 
 : copy-packet  ( adr len -- len' )
    dup multi-packet?  if  4 +  then   ( adr len len' )
-   /outbuf >  if  ." USB Ethernet write packet too long" cr  stop-mac abort  then  ( adr len )
+   /outbuf >  if  ." USB Ethernet write packet too long" cr  stop-net abort  then  ( adr len )
 
    multi-packet?  if       ( adr len )
       dup wbsplit          ( adr len len.low len.high )
@@ -71,7 +72,7 @@
 \ The data format is:
 \  length.leword  ~length.leword  data  [ pad-to-even ]
 : extract-packet  ( -- data-adr len )
-   residue 4 <  if  ." Short residue from USB Ethernet" cr stop-mac  abort  then
+   residue 4 <  if  ." Short residue from USB Ethernet" cr stop-net  abort  then
 
    pkt-adr dup 4 +  swap >r
    r@ c@     r@ 1+  c@ bwjoin   ( data-adr length )
@@ -130,7 +131,7 @@
       0					( adr 0 )
    then					( adr ihandle|0 )
 
-   dup  0=  if  ." Can't open obp-tftp support package" stop-mac abort  then
+   dup  0=  if  ." Can't open obp-tftp support package" stop-net abort  then
 					( adr ihandle )
 
    >r
@@ -185,6 +186,7 @@
 
    link-up? 0=  if
       ." Network not connected." cr
+      stop-phy
       true exit
    then
 



More information about the openfirmware mailing list