Lines Matching +full:mmu +full:- +full:500
1 /*------------------------------------------------------------------------
3 . This is a driver for SMSC's 91C111 single-chip Ethernet device.
6 . Sysgo Real-Time Solutions, GmbH <www.elinos.com>
13 * SPDX-License-Identifier: GPL-2.0+
43 . 06/19/03 Richard Woodruff Made u-boot environment aware and added mac addr checks.
48 ----------------------------------------------------------------------------*/
57 /* Use power-down feature of the chip */
74 /*------------------------------------------------------------------------
78 -------------------------------------------------------------------------*/
107 /*------------------------------------------------------------------------
113 -------------------------------------------------------------------------*/
149 ------------------------------------------------------------
153 ------------------------------------------------------------
172 v = *((volatile word*)(dev->iobase + offset)); in SMC_inw()
179 *((volatile word*)(dev->iobase + offset)) = value; in SMC_outw()
197 *((volatile word*)(dev->iobase + (offset & ~((dword)1)))) = in SMC_outb()
200 *((volatile word*)(dev->iobase + offset)) = in SMC_outb()
209 while (len-- > 0) { in SMC_insw()
221 while (len-- > 0) { in SMC_outsw()
313 /* Release from possible power-down state */ in smc_reset()
331 /* Reset the MMU */ in smc_reset()
338 /* Note: It doesn't seem that waiting for the MMU busy is needed here, in smc_reset()
340 of issuing another MMU command right after this */ in smc_reset()
437 ** The MMU wants the number of pages to be the number of 256 bytes in smc_send()
464 * -ro in smc_send()
477 } while (--time_out); in smc_send()
549 SMC_outw (dev, buf[length - 1] | 0x2000, SMC91111_DATA_REG); in smc_send()
557 /* poll for TX_EMPTY INT - autorelease enabled */ in smc_send()
563 /* no need to release, MMU does that now */ in smc_send()
565 /* wait for MMU getting ready (low) */ in smc_send()
570 PRINTK2 ("MMU ready\n"); in smc_send()
582 /* no need to release, MMU does that now */ in smc_send()
584 /* wait for MMU getting ready (low) */ in smc_send()
589 PRINTK2 ("MMU ready\n"); in smc_send()
611 address = dev->enetaddr[i + 1] << 8; in smc_write_hwaddr()
612 address |= dev->enetaddr[i]; in smc_write_hwaddr()
617 SMC_outb(dev, dev->enetaddr[i], (ADDR0_REG + i)); in smc_write_hwaddr()
648 printf(SMC_DEV_NAME ": MAC %pM\n", dev->enetaddr); in smc_init()
653 /*-------------------------------------------------------------
655 . smc_rcv - receive a packet from the card
658 . chip-memory.
663 --------------------------------------------------------------
709 packet_length -= 4; /*4; */ in smc_rcv()
779 /*------------------------------------------------------------
781 .-------------------------------------------------------------*/
800 /*------------------------------------------------------------
802 .-------------------------------------------------------------*/
813 /*------------------------------------------------------------
815 .-------------------------------------------------------------*/
823 /*------------------------------------------------------------
825 .-------------------------------------------------------------*/
834 /*---PHY CONTROL AND CONFIGURATION----------------------------------------- */
838 /*------------------------------------------------------------
840 .-------------------------------------------------------------*/
878 /*------------------------------------------------------------
880 .-------------------------------------------------------------*/
958 /* Clock Low - output data */ in smc_read_phy_register()
963 /* Clock Hi - input data */ in smc_read_phy_register()
996 /*------------------------------------------------------------
998 .-------------------------------------------------------------*/
1079 /* Clock Low - output data */ in smc_write_phy_register()
1084 /* Clock Hi - input data */ in smc_write_phy_register()
1107 /*------------------------------------------------------------
1110 .-------------------------------------------------------------*/
1126 while (timeout--) { in smc_phy_configure()
1133 mdelay(500); /* wait 500 millisecs */ in smc_phy_configure()
1142 /* lp->lastPhy18 = smc_read_phy_register(PHY_INT_REG); */ in smc_phy_configure()
1171 /* Update our Auto-Neg Advertisement Register */ in smc_phy_configure()
1175 /* auto-negotiation is restarted, sometimes it isn't ready and */ in smc_phy_configure()
1182 /* Restart auto-negotiation process in order to advertise my caps */ in smc_phy_configure()
1186 /* Wait for the auto-negotiation to complete. This may take from */ in smc_phy_configure()
1190 while (timeout--) { in smc_phy_configure()
1194 /* auto-negotiate complete */ in smc_phy_configure()
1198 mdelay(500); /* wait 500 millisecs */ in smc_phy_configure()
1200 /* Restart auto-negotiation if remote fault */ in smc_phy_configure()
1205 /* Restart auto-negotiation */ in smc_phy_configure()
1206 printf ("%s: PHY restarting auto-negotiation\n", in smc_phy_configure()
1217 printf ("%s: PHY auto-negotiate timed out\n", SMC_DEV_NAME); in smc_phy_configure()
1220 /* Fail if we detected an auto-negotiate remote fault */ in smc_phy_configure()
1225 /* Re-Configure the Receive/Phy Control register */ in smc_phy_configure()
1287 priv->dev_num = dev_num; in smc91111_initialize()
1288 dev->priv = priv; in smc91111_initialize()
1289 dev->iobase = base_addr; in smc91111_initialize()
1294 dev->enetaddr[i] = SMC_inb(dev, (ADDR0_REG + i)); in smc91111_initialize()
1297 dev->init = smc_init; in smc91111_initialize()
1298 dev->halt = smc_halt; in smc91111_initialize()
1299 dev->send = smc_send; in smc91111_initialize()
1300 dev->recv = smc_rcv; in smc91111_initialize()
1301 dev->write_hwaddr = smc_write_hwaddr; in smc91111_initialize()
1302 sprintf(dev->name, "%s-%hu", SMC_DEV_NAME, dev_num); in smc91111_initialize()