/* PHY ID */ #define MII_DM9161_ID_H 0x0181 #define MII_DM9161_ID_L 0xb8a0 #define MII_AM79C875_ID_H 0x0022 #define MII_AM79C875_ID_L 0x5540 #define MII_MICREL_ID_H 0x0022 #define MII_MICREL_ID_L 0x1610 /* For some unknown reason it seems to be required to read the ID registers first. */ // Check for DM PHY (as used on the ATMEL EK) if (phy_inw(NIC_PHY_ID1) != MII_DM9161_ID_H || (phy_inw(NIC_PHY_ID2) & 0xFFF0) != MII_DM9161_ID_L) { // Check for MICREL PHY (as used on the Olimex SAM7-EX256) if (phy_inw(NIC_PHY_ID1) != MII_MICREL_ID_H || (phy_inw(NIC_PHY_ID2) & 0xFFF0) != MII_MICREL_ID_L) { outr(EMAC_NCR, inr(EMAC_NCR) & ~EMAC_MPE); return -1; } } |
Если появляется сообщение об ошибке EMAC_PIO_SODR не определен, то в файле
at91_emac.c перед #ifdef PHY_PWRDN_BIT\n /* Disable PHY power down.
*/
ввести:
#ifndef EMAC_PIO_SODR #define EMAC_PIO_SODR PIOB_SODR #endif |