Author: nwhitehorn
Date: Mon Oct 13 17:33:55 2008
New Revision: 183827
URL: http://svn.freebsd.org/changeset/base/183827

Log:
  Change the way we enable the BMAC cell in macio. Instead of calling the
  macio's enable-enet word, which apparently does nothing on some machines,
  open an OF instance of the ethernet controller. This fixes cold booting
  from disk on my Blue & White G3.
  
  MFC after:    3 days

Modified:
  head/sys/dev/bm/if_bm.c

Modified: head/sys/dev/bm/if_bm.c
==============================================================================
--- head/sys/dev/bm/if_bm.c     Mon Oct 13 17:33:44 2008        (r183826)
+++ head/sys/dev/bm/if_bm.c     Mon Oct 13 17:33:55 2008        (r183827)
@@ -1119,21 +1119,25 @@ bm_chip_setup(struct bm_softc *sc)
 {
        uint16_t reg;
        uint16_t *eaddr_sect;
-       char hrow_path[128];
-       ihandle_t hrow_ih;
+       char path[128];
+       ihandle_t bmac_ih;
 
        eaddr_sect = (uint16_t *)(sc->sc_enaddr);
 
-       /* Enable BMAC cell */
-       OF_package_to_path(OF_parent(ofw_bus_get_node(sc->sc_dev)),
-           hrow_path, sizeof(hrow_path));
-       hrow_ih = OF_open(hrow_path);
-       if (hrow_ih == -1) {
+       /* 
+        * Enable BMAC cell by opening and closing its OF node. This enables 
+        * the cell in macio as a side effect. We should probably directly 
+        * twiddle the FCR bits, but we lack a good interface for this at the
+        * present time. 
+        */
+
+       OF_package_to_path(ofw_bus_get_node(sc->sc_dev), path, sizeof(path));
+       bmac_ih = OF_open(path);
+       if (bmac_ih == -1) {
                device_printf(sc->sc_dev,
                    "Enabling BMAC cell failed! Hoping it's already active.\n");
        } else {
-               OF_call_method("enable-enet", hrow_ih, 0, 0);
-               OF_close(hrow_ih);
+               OF_close(bmac_ih);
        }
 
        /* Reset chip */
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to