Lines Matching +full:0 +full:- +full:9
13 #include "hw/qdev-properties.h"
75 if (s->csr[0] & CSR0_DBO) { in tulip_desc_read()
76 ldl_be_pci_dma(&s->dev, p, &desc->status, attrs); in tulip_desc_read()
77 ldl_be_pci_dma(&s->dev, p + 4, &desc->control, attrs); in tulip_desc_read()
78 ldl_be_pci_dma(&s->dev, p + 8, &desc->buf_addr1, attrs); in tulip_desc_read()
79 ldl_be_pci_dma(&s->dev, p + 12, &desc->buf_addr2, attrs); in tulip_desc_read()
81 ldl_le_pci_dma(&s->dev, p, &desc->status, attrs); in tulip_desc_read()
82 ldl_le_pci_dma(&s->dev, p + 4, &desc->control, attrs); in tulip_desc_read()
83 ldl_le_pci_dma(&s->dev, p + 8, &desc->buf_addr1, attrs); in tulip_desc_read()
84 ldl_le_pci_dma(&s->dev, p + 12, &desc->buf_addr2, attrs); in tulip_desc_read()
93 if (s->csr[0] & CSR0_DBO) { in tulip_desc_write()
94 stl_be_pci_dma(&s->dev, p, desc->status, attrs); in tulip_desc_write()
95 stl_be_pci_dma(&s->dev, p + 4, desc->control, attrs); in tulip_desc_write()
96 stl_be_pci_dma(&s->dev, p + 8, desc->buf_addr1, attrs); in tulip_desc_write()
97 stl_be_pci_dma(&s->dev, p + 12, desc->buf_addr2, attrs); in tulip_desc_write()
99 stl_le_pci_dma(&s->dev, p, desc->status, attrs); in tulip_desc_write()
100 stl_le_pci_dma(&s->dev, p + 4, desc->control, attrs); in tulip_desc_write()
101 stl_le_pci_dma(&s->dev, p + 8, desc->buf_addr1, attrs); in tulip_desc_write()
102 stl_le_pci_dma(&s->dev, p + 12, desc->buf_addr2, attrs); in tulip_desc_write()
108 uint32_t ie = s->csr[5] & s->csr[7]; in tulip_update_int()
111 s->csr[5] &= ~(CSR5_AIS | CSR5_NIS); in tulip_update_int()
114 s->csr[5] |= CSR5_NIS; in tulip_update_int()
120 s->csr[5] |= CSR5_AIS; in tulip_update_int()
123 assert = s->csr[5] & s->csr[7] & (CSR5_AIS | CSR5_NIS); in tulip_update_int()
124 trace_tulip_irq(s->csr[5], s->csr[7], assert ? "assert" : "deassert"); in tulip_update_int()
125 qemu_set_irq(s->irq, assert); in tulip_update_int()
130 return ((s->csr[5] >> CSR5_RS_SHIFT) & CSR5_RS_MASK) == CSR5_RS_STOPPED; in tulip_rx_stopped()
136 trace_tulip_descriptor("TX ", s->current_tx_desc, in tulip_dump_tx_descriptor()
137 desc->status, desc->control >> 22, in tulip_dump_tx_descriptor()
138 desc->control & 0x7ff, (desc->control >> 11) & 0x7ff, in tulip_dump_tx_descriptor()
139 desc->buf_addr1, desc->buf_addr2); in tulip_dump_tx_descriptor()
145 trace_tulip_descriptor("RX ", s->current_rx_desc, in tulip_dump_rx_descriptor()
146 desc->status, desc->control >> 22, in tulip_dump_rx_descriptor()
147 desc->control & 0x7ff, (desc->control >> 11) & 0x7ff, in tulip_dump_rx_descriptor()
148 desc->buf_addr1, desc->buf_addr2); in tulip_dump_rx_descriptor()
154 if (desc->control & RDES1_RER) { in tulip_next_rx_descriptor()
155 s->current_rx_desc = s->csr[3]; in tulip_next_rx_descriptor()
156 } else if (desc->control & RDES1_RCH) { in tulip_next_rx_descriptor()
157 s->current_rx_desc = desc->buf_addr2; in tulip_next_rx_descriptor()
159 s->current_rx_desc += sizeof(struct tulip_descriptor) + in tulip_next_rx_descriptor()
160 (((s->csr[0] >> CSR0_DSL_SHIFT) & CSR0_DSL_MASK) << 2); in tulip_next_rx_descriptor()
162 s->current_rx_desc &= ~3ULL; in tulip_next_rx_descriptor()
167 int len1 = (desc->control >> RDES1_BUF1_SIZE_SHIFT) & RDES1_BUF1_SIZE_MASK; in tulip_copy_rx_bytes()
168 int len2 = (desc->control >> RDES1_BUF2_SIZE_SHIFT) & RDES1_BUF2_SIZE_MASK; in tulip_copy_rx_bytes()
171 if (s->rx_frame_len && len1) { in tulip_copy_rx_bytes()
172 if (s->rx_frame_len > len1) { in tulip_copy_rx_bytes()
175 len = s->rx_frame_len; in tulip_copy_rx_bytes()
178 pci_dma_write(&s->dev, desc->buf_addr1, s->rx_frame + in tulip_copy_rx_bytes()
179 (s->rx_frame_size - s->rx_frame_len), len); in tulip_copy_rx_bytes()
180 s->rx_frame_len -= len; in tulip_copy_rx_bytes()
183 if (s->rx_frame_len && len2) { in tulip_copy_rx_bytes()
184 if (s->rx_frame_len > len2) { in tulip_copy_rx_bytes()
187 len = s->rx_frame_len; in tulip_copy_rx_bytes()
190 pci_dma_write(&s->dev, desc->buf_addr2, s->rx_frame + in tulip_copy_rx_bytes()
191 (s->rx_frame_size - s->rx_frame_len), len); in tulip_copy_rx_bytes()
192 s->rx_frame_len -= len; in tulip_copy_rx_bytes()
198 static const char broadcast[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; in tulip_filter_address()
202 for (i = 0; i < 16 && ret == false; i++) { in tulip_filter_address()
203 if (!memcmp(&s->filter[i], addr, ETH_ALEN)) { in tulip_filter_address()
212 if (s->csr[6] & (CSR6_PR | CSR6_RA)) { in tulip_filter_address()
214 s->rx_status |= RDES0_FF; in tulip_filter_address()
218 if ((s->csr[6] & CSR6_PM) && (addr[0] & 1)) { in tulip_filter_address()
220 s->rx_status |= RDES0_MF; in tulip_filter_address()
224 if (s->csr[6] & CSR6_IF) { in tulip_filter_address()
236 if (size < 14 || size > sizeof(s->rx_frame) - 4 in tulip_receive()
237 || s->rx_frame_len || tulip_rx_stopped(s)) { in tulip_receive()
238 return 0; in tulip_receive()
246 tulip_desc_read(s, s->current_rx_desc, &desc); in tulip_receive()
250 s->csr[5] |= CSR5_RU; in tulip_receive()
252 return s->rx_frame_size - s->rx_frame_len; in tulip_receive()
254 desc.status = 0; in tulip_receive()
256 if (!s->rx_frame_len) { in tulip_receive()
257 s->rx_frame_size = size + 4; in tulip_receive()
258 s->rx_status = RDES0_LS | in tulip_receive()
259 ((s->rx_frame_size & RDES0_FL_MASK) << RDES0_FL_SHIFT); in tulip_receive()
261 memcpy(s->rx_frame, buf, size); in tulip_receive()
262 s->rx_frame_len = s->rx_frame_size; in tulip_receive()
267 if (!s->rx_frame_len) { in tulip_receive()
268 desc.status |= s->rx_status; in tulip_receive()
269 s->csr[5] |= CSR5_RI; in tulip_receive()
273 tulip_desc_write(s, s->current_rx_desc, &desc); in tulip_receive()
275 } while (s->rx_frame_len); in tulip_receive()
294 case CSR(0): in tulip_reg_name()
321 case CSR(9): in tulip_reg_name()
413 s->csr[5] &= ~(CSR5_RS_MASK << CSR5_RS_SHIFT); in tulip_update_rs()
414 s->csr[5] |= (state & CSR5_RS_MASK) << CSR5_RS_SHIFT; in tulip_update_rs()
419 /* MDI Registers 0 - 6, 7 */
420 0x3100, 0xf02c, 0x7810, 0x0000, 0x0501, 0x4181, 0x0000, 0x0000,
421 /* MDI Registers 8 - 15 */
422 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
423 /* MDI Registers 16 - 31 */
424 0x0003, 0x0000, 0x0001, 0x0000, 0x3b40, 0x0000, 0x0000, 0x0000,
425 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
430 0x0000, 0xffff, 0xffff, 0xffff, 0xc01f, 0xffff, 0xffff, 0x0000,
431 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
432 0x0fff, 0x0000, 0xffff, 0xffff, 0x0000, 0xffff, 0xffff, 0xffff,
433 0xffff, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
438 uint16_t ret = 0; in tulip_mii_read()
460 uint32_t changed = s->old_csr9 ^ s->csr[9]; in tulip_mii()
468 if (!(s->csr[9] & CSR9_MDC)) { in tulip_mii()
472 s->mii_bitcnt++; in tulip_mii()
473 s->mii_word <<= 1; in tulip_mii()
475 if (s->csr[9] & CSR9_MDO && (s->mii_bitcnt < 16 || in tulip_mii()
476 !(s->csr[9] & CSR9_MII))) { in tulip_mii()
478 s->mii_word |= 1; in tulip_mii()
481 if (s->mii_bitcnt >= 16 && (s->csr[9] & CSR9_MII)) { in tulip_mii()
482 if (s->mii_word & 0x8000) { in tulip_mii()
483 s->csr[9] |= CSR9_MDI; in tulip_mii()
485 s->csr[9] &= ~CSR9_MDI; in tulip_mii()
489 if (s->mii_word == 0xffffffff) { in tulip_mii()
490 s->mii_bitcnt = 0; in tulip_mii()
491 } else if (s->mii_bitcnt == 16) { in tulip_mii()
492 op = (s->mii_word >> 12) & 0x0f; in tulip_mii()
493 phy = (s->mii_word >> 7) & 0x1f; in tulip_mii()
494 reg = (s->mii_word >> 2) & 0x1f; in tulip_mii()
497 s->mii_word = tulip_mii_read(s, phy, reg); in tulip_mii()
499 } else if (s->mii_bitcnt == 32) { in tulip_mii()
500 op = (s->mii_word >> 28) & 0x0f; in tulip_mii()
501 phy = (s->mii_word >> 23) & 0x1f; in tulip_mii()
502 reg = (s->mii_word >> 18) & 0x1f; in tulip_mii()
503 data = s->mii_word & 0xffff; in tulip_mii()
513 if (s->csr[9] & CSR9_SR) { in tulip_csr9_read()
514 if (eeprom93xx_read(s->eeprom)) { in tulip_csr9_read()
515 s->csr[9] |= CSR9_SR_DO; in tulip_csr9_read()
517 s->csr[9] &= ~CSR9_SR_DO; in tulip_csr9_read()
522 return s->csr[9]; in tulip_csr9_read()
527 s->csr[5] &= ~(CSR5_TS_MASK << CSR5_TS_SHIFT); in tulip_update_ts()
528 s->csr[5] |= (state & CSR5_TS_MASK) << CSR5_TS_SHIFT; in tulip_update_ts()
536 uint64_t data = 0; in tulip_read()
539 case CSR(9): in tulip_read()
551 " 0x%"PRIx64"\n", __func__, addr); in tulip_read()
553 data = s->csr[addr >> 3]; in tulip_read()
563 if (s->tx_frame_len) { in tulip_tx()
564 if ((s->csr[6] >> CSR6_OM_SHIFT) & CSR6_OM_MASK) { in tulip_tx()
566 tulip_receive(s, s->tx_frame, s->tx_frame_len); in tulip_tx()
567 } else if (s->tx_frame_len <= sizeof(s->tx_frame)) { in tulip_tx()
568 qemu_send_packet(qemu_get_queue(s->nic), in tulip_tx()
569 s->tx_frame, s->tx_frame_len); in tulip_tx()
573 if (desc->control & TDES1_IC) { in tulip_tx()
574 s->csr[5] |= CSR5_TI; in tulip_tx()
581 int len1 = (desc->control >> TDES1_BUF1_SIZE_SHIFT) & TDES1_BUF1_SIZE_MASK; in tulip_copy_tx_buffers()
582 int len2 = (desc->control >> TDES1_BUF2_SIZE_SHIFT) & TDES1_BUF2_SIZE_MASK; in tulip_copy_tx_buffers()
584 if (s->tx_frame_len + len1 > sizeof(s->tx_frame)) { in tulip_copy_tx_buffers()
587 __func__, s->tx_frame_len, len1, sizeof(s->tx_frame)); in tulip_copy_tx_buffers()
588 return -1; in tulip_copy_tx_buffers()
591 pci_dma_read(&s->dev, desc->buf_addr1, in tulip_copy_tx_buffers()
592 s->tx_frame + s->tx_frame_len, len1); in tulip_copy_tx_buffers()
593 s->tx_frame_len += len1; in tulip_copy_tx_buffers()
596 if (s->tx_frame_len + len2 > sizeof(s->tx_frame)) { in tulip_copy_tx_buffers()
599 __func__, s->tx_frame_len, len2, sizeof(s->tx_frame)); in tulip_copy_tx_buffers()
600 return -1; in tulip_copy_tx_buffers()
603 pci_dma_read(&s->dev, desc->buf_addr2, in tulip_copy_tx_buffers()
604 s->tx_frame + s->tx_frame_len, len2); in tulip_copy_tx_buffers()
605 s->tx_frame_len += len2; in tulip_copy_tx_buffers()
607 desc->status = (len1 + len2) ? 0 : 0x7fffffff; in tulip_copy_tx_buffers()
609 return 0; in tulip_copy_tx_buffers()
616 s->filter[n][0] = buf[offset]; in tulip_setup_filter_addr()
617 s->filter[n][1] = buf[offset + 1]; in tulip_setup_filter_addr()
619 s->filter[n][2] = buf[offset + 4]; in tulip_setup_filter_addr()
620 s->filter[n][3] = buf[offset + 5]; in tulip_setup_filter_addr()
622 s->filter[n][4] = buf[offset + 8]; in tulip_setup_filter_addr()
623 s->filter[n][5] = buf[offset + 9]; in tulip_setup_filter_addr()
625 trace_tulip_setup_filter(n, s->filter[n][5], s->filter[n][4], in tulip_setup_filter_addr()
626 s->filter[n][3], s->filter[n][2], s->filter[n][1], s->filter[n][0]); in tulip_setup_filter_addr()
633 int len = (desc->control >> TDES1_BUF1_SIZE_SHIFT) & TDES1_BUF1_SIZE_MASK; in tulip_setup_frame()
639 pci_dma_read(&s->dev, desc->buf_addr1, buf, len); in tulip_setup_frame()
640 for (i = 0; i < 16; i++) { in tulip_setup_frame()
645 desc->status = 0x7fffffff; in tulip_setup_frame()
647 if (desc->control & TDES1_IC) { in tulip_setup_frame()
648 s->csr[5] |= CSR5_TI; in tulip_setup_frame()
656 if (desc->control & TDES1_TER) { in tulip_next_tx_descriptor()
657 s->current_tx_desc = s->csr[4]; in tulip_next_tx_descriptor()
658 } else if (desc->control & TDES1_TCH) { in tulip_next_tx_descriptor()
659 s->current_tx_desc = desc->buf_addr2; in tulip_next_tx_descriptor()
661 s->current_tx_desc += sizeof(struct tulip_descriptor) + in tulip_next_tx_descriptor()
662 (((s->csr[0] >> CSR0_DSL_SHIFT) & CSR0_DSL_MASK) << 2); in tulip_next_tx_descriptor()
664 s->current_tx_desc &= ~3ULL; in tulip_next_tx_descriptor()
669 return (s->csr[5] >> CSR5_TS_SHIFT) & CSR5_TS_MASK; in tulip_ts()
675 uint8_t i = 0; in tulip_xmit_list_update()
682 for (i = 0; i < TULIP_DESC_MAX; i++) { in tulip_xmit_list_update()
683 tulip_desc_read(s, s->current_tx_desc, &desc); in tulip_xmit_list_update()
688 s->csr[5] |= CSR5_TU; in tulip_xmit_list_update()
697 s->tx_frame_len = 0; in tulip_xmit_list_update()
706 tulip_desc_write(s, s->current_tx_desc, &desc); in tulip_xmit_list_update()
715 eeprom93xx_write(s->eeprom, in tulip_csr9_write()
726 s->csr[0] = 0xfe000000; in tulip_reset()
727 s->csr[1] = 0xffffffff; in tulip_reset()
728 s->csr[2] = 0xffffffff; in tulip_reset()
729 s->csr[5] = 0xf0000000; in tulip_reset()
730 s->csr[6] = 0x32000040; in tulip_reset()
731 s->csr[7] = 0xf3fe0000; in tulip_reset()
732 s->csr[8] = 0xe0000000; in tulip_reset()
733 s->csr[9] = 0xfff483ff; in tulip_reset()
734 s->csr[11] = 0xfffe0000; in tulip_reset()
735 s->csr[12] = 0x000000c6; in tulip_reset()
736 s->csr[13] = 0xffff0000; in tulip_reset()
737 s->csr[14] = 0xffffffff; in tulip_reset()
738 s->csr[15] = 0x8ff00000; in tulip_reset()
756 case CSR(0): in tulip_write()
757 s->csr[0] = data; in tulip_write()
769 qemu_flush_queued_packets(qemu_get_queue(s->nic)); in tulip_write()
773 s->csr[3] = data & ~3ULL; in tulip_write()
774 s->current_rx_desc = s->csr[3]; in tulip_write()
775 qemu_flush_queued_packets(qemu_get_queue(s->nic)); in tulip_write()
779 s->csr[4] = data & ~3ULL; in tulip_write()
780 s->current_tx_desc = s->csr[4]; in tulip_write()
786 s->csr[5] &= ~(data & (CSR5_TI | CSR5_TPS | CSR5_TU | CSR5_TJT | in tulip_write()
795 s->csr[6] = data; in tulip_write()
796 if (s->csr[6] & CSR6_SR) { in tulip_write()
798 qemu_flush_queued_packets(qemu_get_queue(s->nic)); in tulip_write()
803 if (s->csr[6] & CSR6_ST) { in tulip_write()
812 s->csr[7] = data; in tulip_write()
817 s->csr[9] = data; in tulip_write()
820 case CSR(9): in tulip_write()
821 tulip_csr9_write(s, s->csr[9], data); in tulip_write()
823 s->csr[9] &= CSR9_MDI; in tulip_write()
824 s->csr[9] |= (data & ~CSR9_MDI); in tulip_write()
826 s->old_csr9 = s->csr[9]; in tulip_write()
830 s->csr[10] = data; in tulip_write()
834 s->csr[11] = data; in tulip_write()
839 s->csr[12] &= ~(data & (CSR12_MRA | CSR12_TRA | CSR12_ARA)); in tulip_write()
843 s->csr[13] = data; in tulip_write()
847 s->csr[14] = data; in tulip_write()
851 s->csr[15] = data; in tulip_write()
856 "0x%"PRIx64"\n", __func__, addr); in tulip_write()
876 const int len = 9; in tulip_idblock_crc()
877 crc = -1; in tulip_idblock_crc()
879 for (word = 0; word < len; word++) { in tulip_idblock_crc()
880 for (bit = 15; bit >= 0; bit--) { in tulip_idblock_crc()
881 if ((word == (len - 1)) && (bit == 7)) { in tulip_idblock_crc()
886 srom[len - 1] = (srom[len - 1] & 0xff00) | (unsigned short)crc; in tulip_idblock_crc()
893 crc |= 0x01; in tulip_idblock_crc()
901 unsigned long crc = 0xffffffff; in tulip_srom_crc()
902 unsigned long flippedcrc = 0; in tulip_srom_crc()
906 for (i = 0; i < len; i++) { in tulip_srom_crc()
908 for (bit = 0; bit < 8; bit++) { in tulip_srom_crc()
912 crc ^= 0x04c11db6; in tulip_srom_crc()
913 crc |= 0x00000001; in tulip_srom_crc()
919 for (i = 0; i < 32; i++) { in tulip_srom_crc()
925 return (flippedcrc ^ 0xffffffff) & 0xffff; in tulip_srom_crc()
929 0x3c, 0x10, 0x4f, 0x10, 0x00, 0x00, 0x00, 0x00,
930 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
931 0x56, 0x08, 0x04, 0x01, 0x00, 0x80, 0x48, 0xb3,
932 0x0e, 0xa7, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x08,
933 0x01, 0x8d, 0x03, 0x00, 0x00, 0x00, 0x00, 0x78,
934 0xe0, 0x01, 0x00, 0x50, 0x00, 0x18, 0x00, 0x00,
935 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
936 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
937 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
938 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
939 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
940 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x6b,
941 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
942 0x48, 0xb3, 0x0e, 0xa7, 0x40, 0x00, 0x00, 0x00,
943 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
944 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
949 uint16_t *eeprom = eeprom93xx_data(s->eeprom); in tulip_fill_eeprom()
953 eeprom[10] = cpu_to_le16(s->c.macaddr.a[0] | (s->c.macaddr.a[1] << 8)); in tulip_fill_eeprom()
954 eeprom[11] = cpu_to_le16(s->c.macaddr.a[2] | (s->c.macaddr.a[3] << 8)); in tulip_fill_eeprom()
955 eeprom[12] = cpu_to_le16(s->c.macaddr.a[4] | (s->c.macaddr.a[5] << 8)); in tulip_fill_eeprom()
965 pci_conf = s->dev.config; in pci_tulip_realize()
968 qemu_macaddr_default_if_unset(&s->c.macaddr); in pci_tulip_realize()
970 s->eeprom = eeprom93xx_new(&pci_dev->qdev, 64); in pci_tulip_realize()
973 memory_region_init_io(&s->io, OBJECT(&s->dev), &tulip_ops, s, in pci_tulip_realize()
974 "tulip-io", 128); in pci_tulip_realize()
976 memory_region_init_io(&s->memory, OBJECT(&s->dev), &tulip_ops, s, in pci_tulip_realize()
977 "tulip-mem", 128); in pci_tulip_realize()
979 pci_register_bar(&s->dev, 0, PCI_BASE_ADDRESS_SPACE_IO, &s->io); in pci_tulip_realize()
980 pci_register_bar(&s->dev, 1, PCI_BASE_ADDRESS_SPACE_MEMORY, &s->memory); in pci_tulip_realize()
982 s->irq = pci_allocate_irq(&s->dev); in pci_tulip_realize()
984 s->nic = qemu_new_nic(&net_tulip_info, &s->c, in pci_tulip_realize()
986 pci_dev->qdev.id, in pci_tulip_realize()
987 &pci_dev->qdev.mem_reentrancy_guard, s); in pci_tulip_realize()
988 qemu_format_nic_info_str(qemu_get_queue(s->nic), s->c.macaddr.a); in pci_tulip_realize()
995 qemu_del_nic(s->nic); in pci_tulip_exit()
996 qemu_free_irq(s->irq); in pci_tulip_exit()
997 eeprom93xx_free(&pci_dev->qdev, s->eeprom); in pci_tulip_exit()
1005 device_add_bootindex_property(obj, &d->c.bootindex, in tulip_instance_init()
1006 "bootindex", "/ethernet-phy@0", in tulip_instance_init()
1007 &pci_dev->qdev); in tulip_instance_init()
1019 k->realize = pci_tulip_realize; in tulip_class_init()
1020 k->exit = pci_tulip_exit; in tulip_class_init()
1021 k->vendor_id = PCI_VENDOR_ID_DEC; in tulip_class_init()
1022 k->device_id = PCI_DEVICE_ID_DEC_21143; in tulip_class_init()
1023 k->subsystem_vendor_id = PCI_VENDOR_ID_HP; in tulip_class_init()
1024 k->subsystem_id = 0x104f; in tulip_class_init()
1025 k->class_id = PCI_CLASS_NETWORK_ETHERNET; in tulip_class_init()
1026 dc->vmsd = &vmstate_pci_tulip; in tulip_class_init()
1029 set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); in tulip_class_init()