Lines Matching +full:short +full:- +full:descriptor
2 natsemi.c: A U-Boot driver for the NatSemi DP8381x series.
21 Written/copyright 1999-2001 by Donald Becker.
48 * Initial U-Boot Release. Tested with Netgear FA311 board
61 #define EEPROM_SIZE 0xb /*12 16-bit chunks, or 24 bytes*/
68 #define NUM_RX_DESC 4 /* Number of Rx descriptor registers. */
71 Unlike software-only systems, device drivers interact with complex hardware.
228 short value);
248 #define bus_to_phys(a) pci_mem_to_phys((pci_dev_t)dev->priv, a)
249 #define phys_to_bus(a) pci_phys_to_mem((pci_dev_t)dev->priv, a)
254 return le16_to_cpu(*(vu_short *) (addr + dev->iobase)); in INW()
260 return le32_to_cpu(*(vu_long *) (addr + dev->iobase)); in INL()
266 *(vu_short *) ((addr + dev->iobase)) = cpu_to_le16(command); in OUTW()
272 *(vu_long *) ((addr + dev->iobase)) = cpu_to_le32(command); in OUTL()
328 sprintf(dev->name, "dp83815#%d", card_number); in natsemi_initialize()
329 dev->iobase = bus_to_phys(iobase); in natsemi_initialize()
331 printf("natsemi: NatSemi ns8381[56] @ %#x\n", dev->iobase); in natsemi_initialize()
333 dev->priv = (void *) devno; in natsemi_initialize()
334 dev->init = natsemi_init; in natsemi_initialize()
335 dev->halt = natsemi_disable; in natsemi_initialize()
336 dev->send = natsemi_send; in natsemi_initialize()
337 dev->recv = natsemi_poll; in natsemi_initialize()
348 /* natsemi has a non-standard PM control register in natsemi_initialize()
360 short eedata = read_eeprom(dev, EECtrl, i); in natsemi_initialize()
369 dev->enetaddr[i*2] = (eedata << 1) + (prev_eedata >> 15); in natsemi_initialize()
370 dev->enetaddr[i*2+1] = eedata >> 7; in natsemi_initialize()
381 dev->name, (int) INL(dev, BasicStatus), advertising); in natsemi_initialize()
383 dev->name, chip_config & AnegMask ? "enabled, advertise" : in natsemi_initialize()
390 dev->name, chip_config & AnegMask ? "enabled, advertise" : in natsemi_initialize()
396 /*un-reset phy*/ in natsemi_initialize()
428 /* The EEPROM commands include the alway-set leading bit. */
436 write_eeprom(struct eth_device *dev, long addr, int location, short value)
440 short wren_cmd = EE_WrEnCmd | 0x30; /*wren is 100 + 11XXXX*/
441 short write_cmd = location | EE_WriteCmd;
445 dev->iobase + ee_addr, write_cmd, value);
448 for (i = 9; i >= 0; i--) {
449 short cmdval = (wren_cmd & (1 << i)) ? EE_Write1 : EE_Write0;
461 for (i = 9; i >= 0; i--) {
462 short cmdval = (write_cmd & (1 << i)) ? EE_Write1 : EE_Write0;
470 short cmdval = (value & (1 << i)) ? EE_Write1 : EE_Write0;
505 for (i = 10; i >= 0; i--) { in read_eeprom()
506 short dataval = (read_cmd & (1 << i)) ? EE_Write1 : EE_Write0; in read_eeprom()
529 dev->iobase + ee_addr, read_cmd, retval); in read_eeprom()
580 printf("%s: Setting TxConfig Register %#08X\n", dev->name, tx_config); in natsemi_init()
581 printf("%s: Setting RxConfig Register %#08X\n", dev->name, rx_config); in natsemi_init()
639 OUTW(dev, dev->enetaddr[i] + (dev->enetaddr[i + 1] << 8), in natsemi_init_rxfilter()
647 * Description: initializes the Tx descriptor
661 /* load Transmit Descriptor Register */ in natsemi_init_txd()
664 printf("natsemi_init_txd: TX descriptor reg loaded with: %#08X\n", in natsemi_init_txd()
671 * Description: initializes the Rx descriptor ring
685 /* init RX descriptor */ in natsemi_init_rxd()
702 /* load Receive Descriptor Register */ in natsemi_init_rxd()
706 printf("natsemi_init_rxd: RX descriptor register loaded with: %X\n", in natsemi_init_rxd()
736 printf("%s: Setting %s-duplex based on negotiated link" in natsemi_check_duplex()
737 " capability.\n", dev->name, duplex ? "full" : "half"); in natsemi_check_duplex()
770 /* set the transmit buffer descriptor and enable Transmit State Machine */ in natsemi_send()
775 /* load Transmit Descriptor Register */ in natsemi_send()
779 printf("natsemi_send: TX descriptor register loaded with: %#08X\n", in natsemi_send()
791 dev->name, tx_status); in natsemi_send()
817 * Returns (copies) the packet to the array dev->packet.
835 length = (rx_status & DSIZE) - CRC_SIZE; in natsemi_poll()
848 /* return the descriptor and buffer to receive ring */ in natsemi_poll()
855 /* re-enable the potentially idle receive state machine */ in natsemi_poll()