diff options
author | dg <dg@FreeBSD.org> | 1997-02-04 10:53:12 +0000 |
---|---|---|
committer | dg <dg@FreeBSD.org> | 1997-02-04 10:53:12 +0000 |
commit | 57ba1e051150cbd7fb35f1274d0b6e7aefb4d359 (patch) | |
tree | 4c47fcca4628c56c40be99afa94d085884ee8df0 /sys/dev/fxp | |
parent | cc86e3701137c7a8df45e4acb91e18250c018e2a (diff) | |
download | FreeBSD-src-57ba1e051150cbd7fb35f1274d0b6e7aefb4d359.zip FreeBSD-src-57ba1e051150cbd7fb35f1274d0b6e7aefb4d359.tar.gz |
Do "selective" reset rather than full reset...the manual specifically
says not to do the full reset because it can lock up the PCI bus if the
chip is active. Added various PORT command definitions to facilitate
this.
Diffstat (limited to 'sys/dev/fxp')
-rw-r--r-- | sys/dev/fxp/if_fxp.c | 6 | ||||
-rw-r--r-- | sys/dev/fxp/if_fxpreg.h | 5 |
2 files changed, 8 insertions, 3 deletions
diff --git a/sys/dev/fxp/if_fxp.c b/sys/dev/fxp/if_fxp.c index 1565213..257c3ef 100644 --- a/sys/dev/fxp/if_fxp.c +++ b/sys/dev/fxp/if_fxp.c @@ -243,9 +243,9 @@ fxp_attach(config_id, unit) } /* - * Issue a software reset. + * Reset to a stable state. */ - sc->csr->port = 0; + sc->csr->port = FXP_PORT_SELECTIVE_RESET; DELAY(10); /* @@ -739,7 +739,7 @@ fxp_stop(sc) /* * Issue software reset */ - sc->csr->port = 0; + sc->csr->port = FXP_PORT_SELECTIVE_RESET; DELAY(10); /* diff --git a/sys/dev/fxp/if_fxpreg.h b/sys/dev/fxp/if_fxpreg.h index 5a3e812..7e78c41 100644 --- a/sys/dev/fxp/if_fxpreg.h +++ b/sys/dev/fxp/if_fxpreg.h @@ -47,6 +47,11 @@ struct fxp_csr { volatile u_int32_t mdi_control; }; +#define FXP_PORT_SOFTWARE_RESET 0 +#define FXP_PORT_SELFTEST 1 +#define FXP_PORT_SELECTIVE_RESET 2 +#define FXP_PORT_DUMP 3 + #define FXP_SCB_RUS_IDLE 0 #define FXP_SCB_RUS_SUSPENDED 1 #define FXP_SCB_RUS_NORESOURCES 2 |