-/*++\r
-\r
-Routine Description:\r
- This routine will detect what phy we are using, set the line\r
- speed, FDX or HDX, and configure the phy if necessary.\r
-\r
- The following combinations are supported:\r
- - TX or T4 PHY alone at PHY address 1\r
- - T4 or TX PHY at address 1 and MII PHY at address 0\r
- - 82503 alone (10Base-T mode, no full duplex support)\r
- - 82503 and MII PHY (TX or T4) at address 0\r
-\r
- The sequence / priority of detection is as follows:\r
- - PHY 1 with cable termination\r
- - PHY 0 with cable termination\r
- - PHY 1 (if found) without cable termination\r
- - 503 interface\r
-\r
- Additionally auto-negotiation capable (NWAY) and parallel\r
- detection PHYs are supported. The flow-chart is described in\r
- the 82557 software writer's manual.\r
-\r
- NOTE: 1. All PHY MDI registers are read in polled mode.\r
- 2. The routines assume that the 82557 has been RESET and we have\r
- obtained the virtual memory address of the CSR.\r
- 3. PhyDetect will not RESET the PHY.\r
- 4. If FORCEFDX is set, SPEED should also be set. The driver will\r
- check the values for inconsistency with the detected PHY\r
- technology.\r
- 5. PHY 1 (the PHY on the adapter) may have an address in the range\r
- 1 through 31 inclusive. The driver will accept addresses in\r
- this range.\r
- 6. Driver ignores FORCEFDX and SPEED overrides if a 503 interface\r
- is detected.\r
-\r
-Arguments:\r
- AdapterInfo - pointer to the structure that contains the NIC's context.\r
-\r
-Returns:\r
- TRUE - If a Phy was detected, and configured correctly.\r
- FALSE - If a valid phy could not be detected and configured.\r
-\r
---*/\r