Lines Matching refs:bd

89 static void print_bd(eTSEC_rxtx_bd bd, int mode, uint32_t index)  in print_bd()  argument
94 qemu_log(" Flags : 0x%04x\n", bd.flags); in print_bd()
96 print_tx_bd_flags(bd.flags); in print_bd()
98 print_rx_bd_flags(bd.flags); in print_bd()
100 qemu_log(" Length : 0x%04x\n", bd.length); in print_bd()
101 qemu_log(" Pointer : 0x%08x\n", bd.bufptr); in print_bd()
108 eTSEC_rxtx_bd *bd) in read_buffer_descriptor() argument
110 assert(bd != NULL); in read_buffer_descriptor()
114 bd, in read_buffer_descriptor()
118 bd->flags = lduw_le_p(&bd->flags); in read_buffer_descriptor()
119 bd->length = lduw_le_p(&bd->length); in read_buffer_descriptor()
120 bd->bufptr = ldl_le_p(&bd->bufptr); in read_buffer_descriptor()
122 bd->flags = lduw_be_p(&bd->flags); in read_buffer_descriptor()
123 bd->length = lduw_be_p(&bd->length); in read_buffer_descriptor()
124 bd->bufptr = ldl_be_p(&bd->bufptr); in read_buffer_descriptor()
130 eTSEC_rxtx_bd *bd) in write_buffer_descriptor() argument
132 assert(bd != NULL); in write_buffer_descriptor()
135 stw_le_p(&bd->flags, bd->flags); in write_buffer_descriptor()
136 stw_le_p(&bd->length, bd->length); in write_buffer_descriptor()
137 stl_le_p(&bd->bufptr, bd->bufptr); in write_buffer_descriptor()
139 stw_be_p(&bd->flags, bd->flags); in write_buffer_descriptor()
140 stw_be_p(&bd->length, bd->length); in write_buffer_descriptor()
141 stl_be_p(&bd->bufptr, bd->bufptr); in write_buffer_descriptor()
146 bd, in write_buffer_descriptor()
221 eTSEC_rxtx_bd *bd) in process_tx_bd() argument
226 if (bd->length == 0) { in process_tx_bd()
233 etsec->first_bd = *bd; in process_tx_bd()
240 etsec->tx_buffer_len + bd->length); in process_tx_bd()
242 cpu_physical_memory_read(bd->bufptr + tbdbth, tmp_buff, bd->length); in process_tx_bd()
245 etsec->tx_buffer_len += bd->length; in process_tx_bd()
248 if (etsec->tx_buffer_len != 0 && (bd->flags & BD_LAST)) { in process_tx_bd()
289 if (bd->flags & BD_INTERRUPT) { in process_tx_bd()
293 if (bd->flags & BD_INTERRUPT) { in process_tx_bd()
301 bd->flags &= ~BD_TX_READY; in process_tx_bd()
304 bd->flags &= ~BD_TX_PREDEF; in process_tx_bd()
307 bd->flags &= ~BD_TX_HFELC; in process_tx_bd()
310 bd->flags &= ~BD_TX_CFRL; in process_tx_bd()
313 bd->flags &= ~(BD_TX_RC_MASK << BD_TX_RC_OFFSET); in process_tx_bd()
316 bd->flags &= ~BD_TX_TOEUN; in process_tx_bd()
319 bd->flags &= ~BD_TX_TR; in process_tx_bd()
326 eTSEC_rxtx_bd bd; in etsec_walk_tx_ring() local
339 read_buffer_descriptor(etsec, bd_addr, &bd); in etsec_walk_tx_ring()
342 print_bd(bd, in etsec_walk_tx_ring()
349 bd_flags = bd.flags; in etsec_walk_tx_ring()
355 process_tx_bd(etsec, &bd); in etsec_walk_tx_ring()
357 write_buffer_descriptor(etsec, bd_addr, &bd); in etsec_walk_tx_ring()
382 eTSEC_rxtx_bd *bd, in fill_rx_bd() argument
387 hwaddr bufptr = bd->bufptr + in fill_rx_bd()
398 bd->length = 0; in fill_rx_bd()
406 bd->length += etsec->rx_fcb_size; in fill_rx_bd()
425 bd->flags &= ~BD_RX_EMPTY; in fill_rx_bd()
426 bd->length += to_write; in fill_rx_bd()
434 rem = MIN(etsec->regs[MRBLR].value - bd->length, etsec->rx_padding); in fill_rx_bd()
440 bd->length += rem; in fill_rx_bd()
531 eTSEC_rxtx_bd bd; in etsec_walk_rx_ring() local
554 read_buffer_descriptor(etsec, bd_addr, &bd); in etsec_walk_rx_ring()
557 print_bd(bd, in etsec_walk_rx_ring()
564 bd_flags = bd.flags; in etsec_walk_rx_ring()
567 fill_rx_bd(etsec, &bd, &buf, &remaining_data); in etsec_walk_rx_ring()
570 bd.flags |= BD_RX_FIRST; in etsec_walk_rx_ring()
572 etsec->rx_first_bd = bd; in etsec_walk_rx_ring()
580 bd.flags &= ~0x7ff; in etsec_walk_rx_ring()
582 bd.flags |= BD_LAST; in etsec_walk_rx_ring()
591 bd.flags |= BD_RX_LG; in etsec_walk_rx_ring()
596 bd.flags |= BD_RX_SH; in etsec_walk_rx_ring()
601 if (bd.flags & BD_INTERRUPT) { in etsec_walk_rx_ring()
610 if (bd.flags & BD_INTERRUPT) { in etsec_walk_rx_ring()
617 write_buffer_descriptor(etsec, bd_addr, &bd); in etsec_walk_rx_ring()