Print this page
XXXX Intel X540 support

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/io/ixgbe/ixgbe_tx.c
          +++ new/usr/src/uts/common/io/ixgbe/ixgbe_tx.c
↓ open down ↓ 1070 lines elided ↑ open up ↑
1071 1071                   * the first tx control block.
1072 1072                   */
1073 1073                  first_tcb->desc_num++;
1074 1074          }
1075 1075          first_tcb->last_index = PREV_INDEX(index, 1, tx_ring->ring_size);
1076 1076  
1077 1077          /*
1078 1078           * The Insert Ethernet CRC (IFCS) bit and the checksum fields are only
1079 1079           * valid in the first descriptor of the packet.
1080 1080           * Setting paylen in every first_tbd for all parts.
1081      -         * 82599 requires the packet length in paylen field with or without
1082      -         * LSO and 82598 will ignore it in non-LSO mode.
     1081 +         * 82599 and X540 require the packet length in paylen field with or
     1082 +         * without LSO and 82598 will ignore it in non-LSO mode.
1083 1083           */
1084 1084          ASSERT(first_tbd != NULL);
1085 1085          first_tbd->read.cmd_type_len |= IXGBE_ADVTXD_DCMD_IFCS;
1086 1086  
1087 1087          switch (hw->mac.type) {
1088 1088          case ixgbe_mac_82598EB:
1089 1089                  if (ctx != NULL && ctx->lso_flag) {
1090 1090                          first_tbd->read.cmd_type_len |= IXGBE_ADVTXD_DCMD_TSE;
1091 1091                          first_tbd->read.olinfo_status |=
1092 1092                              (mbsize - ctx->mac_hdr_len - ctx->ip_hdr_len
1093 1093                              - ctx->l4_hdr_len) << IXGBE_ADVTXD_PAYLEN_SHIFT;
1094 1094                  }
1095 1095                  break;
1096 1096  
1097 1097          case ixgbe_mac_82599EB:
     1098 +        case ixgbe_mac_X540:
1098 1099                  if (ctx != NULL && ctx->lso_flag) {
1099 1100                          first_tbd->read.cmd_type_len |= IXGBE_ADVTXD_DCMD_TSE;
1100 1101                          first_tbd->read.olinfo_status |=
1101 1102                              (mbsize - ctx->mac_hdr_len - ctx->ip_hdr_len
1102 1103                              - ctx->l4_hdr_len) << IXGBE_ADVTXD_PAYLEN_SHIFT;
1103 1104                  } else {
1104 1105                          first_tbd->read.olinfo_status |=
1105 1106                              (mbsize << IXGBE_ADVTXD_PAYLEN_SHIFT);
1106 1107                  }
1107 1108                  break;
↓ open down ↓ 510 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX