• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/sys/dev/vnic/

Lines Matching refs:lmacid

139 	uint8_t lmacid;
175 for (lmacid = 0; lmacid < bgx->lmac_count; lmacid++) {
176 err = bgx_lmac_enable(bgx, lmacid);
179 bgx->bgx_id, lmacid);
202 uint8_t lmacid;
207 for (lmacid = 0; lmacid < bgx->lmac_count; lmacid++)
208 bgx_lmac_disable(bgx, lmacid);
300 bgx_get_lmac_link_state(int node, int bgx_idx, int lmacid, void *status)
310 lmac = &bgx->lmac[lmacid];
317 *bgx_get_lmac_mac(int node, int bgx_idx, int lmacid)
322 return (bgx->lmac[lmacid].mac);
328 bgx_set_lmac_mac(int node, int bgx_idx, int lmacid, const uint8_t *mac)
335 memcpy(bgx->lmac[lmacid].mac, mac, ETHER_ADDR_LEN);
346 cmr_cfg = bgx_reg_read(bgx, lmac->lmacid, BGX_CMRX_CFG);
348 bgx_reg_write(bgx, lmac->lmacid, BGX_CMRX_CFG, cmr_cfg);
350 port_cfg = bgx_reg_read(bgx, lmac->lmacid, BGX_GMP_GMI_PRTX_CFG);
351 misc_ctl = bgx_reg_read(bgx, lmac->lmacid, BGX_GMP_PCS_MISCX_CTL);
368 bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_GMI_TXX_SLOT, 64);
369 bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_GMI_TXX_BURST, 0);
377 bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_GMI_TXX_SLOT, 64);
378 bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_GMI_TXX_BURST, 0);
386 bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_GMI_TXX_SLOT, 512);
388 bgx_reg_write(bgx, lmac->lmacid,
391 bgx_reg_write(bgx, lmac->lmacid,
397 bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_PCS_MISCX_CTL, misc_ctl);
398 bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_GMI_PRTX_CFG, port_cfg);
400 port_cfg = bgx_reg_read(bgx, lmac->lmacid, BGX_GMP_GMI_PRTX_CFG);
404 bgx_reg_write(bgx, lmac->lmacid, BGX_CMRX_CFG, cmr_cfg);
417 err = LMAC_MEDIA_STATUS(lmac->phy_if_dev, lmac->lmacid,
564 bgx_lmac_sgmii_init(struct bgx *bgx, int lmacid)
568 bgx_reg_modify(bgx, lmacid, BGX_GMP_GMI_TXX_THRESH, 0x30);
570 bgx_reg_modify(bgx, lmacid, BGX_GMP_GMI_RXX_JABBER, MAX_FRAME_SIZE);
573 cfg = bgx_reg_read(bgx, lmacid, BGX_GMP_GMI_TXX_APPEND);
575 bgx_reg_write(bgx, lmacid, BGX_GMP_GMI_TXX_SGMII_CTL, 0);
578 bgx_reg_modify(bgx, lmacid, BGX_CMRX_CFG, CMR_EN);
581 bgx_reg_modify(bgx, lmacid, BGX_GMP_PCS_MRX_CTL, PCS_MRX_CTL_RESET);
582 if (bgx_poll_reg(bgx, lmacid, BGX_GMP_PCS_MRX_CTL,
589 cfg = bgx_reg_read(bgx, lmacid, BGX_GMP_PCS_MRX_CTL);
592 bgx_reg_write(bgx, lmacid, BGX_GMP_PCS_MRX_CTL, cfg);
594 if (bgx_poll_reg(bgx, lmacid, BGX_GMP_PCS_MRX_STATUS,
604 bgx_lmac_xaui_init(struct bgx *bgx, int lmacid, int lmac_type)
609 bgx_reg_modify(bgx, lmacid, BGX_SPUX_CONTROL1, SPU_CTL_RESET);
610 if (bgx_poll_reg(bgx, lmacid, BGX_SPUX_CONTROL1,
617 cfg = bgx_reg_read(bgx, lmacid, BGX_CMRX_CFG);
619 bgx_reg_write(bgx, lmacid, BGX_CMRX_CFG, cfg);
621 bgx_reg_modify(bgx, lmacid, BGX_SPUX_CONTROL1, SPU_CTL_LOW_POWER);
624 bgx_reg_modify(bgx, lmacid,
627 bgx_reg_modify(bgx, lmacid, BGX_SPUX_MISC_CONTROL,
632 cfg = bgx_reg_read(bgx, lmacid, BGX_SMUX_RX_INT);
633 bgx_reg_write(bgx, lmacid, BGX_SMUX_RX_INT, cfg);
634 cfg = bgx_reg_read(bgx, lmacid, BGX_SMUX_TX_INT);
635 bgx_reg_write(bgx, lmacid, BGX_SMUX_TX_INT, cfg);
636 cfg = bgx_reg_read(bgx, lmacid, BGX_SPUX_INT);
637 bgx_reg_write(bgx, lmacid, BGX_SPUX_INT, cfg);
640 bgx_reg_write(bgx, lmacid, BGX_SPUX_BR_PMD_LP_CUP, 0x00);
641 bgx_reg_write(bgx, lmacid, BGX_SPUX_BR_PMD_LD_CUP, 0x00);
642 bgx_reg_write(bgx, lmacid, BGX_SPUX_BR_PMD_LD_REP, 0x00);
644 bgx_reg_modify(bgx, lmacid, BGX_SPUX_BR_PMD_CRTL,
649 bgx_reg_modify(bgx, lmacid, BGX_SMUX_TX_APPEND, SMU_TX_APPEND_FCS_D);
652 cfg = bgx_reg_read(bgx, lmacid, BGX_SPUX_FEC_CONTROL);
654 bgx_reg_write(bgx, lmacid, BGX_SPUX_FEC_CONTROL, cfg);
657 cfg = bgx_reg_read(bgx, lmacid, BGX_SPUX_AN_CONTROL);
659 bgx_reg_write(bgx, lmacid, BGX_SPUX_AN_CONTROL, cfg);
661 cfg = bgx_reg_read(bgx, lmacid, BGX_SPUX_AN_ADV);
669 bgx_reg_write(bgx, lmacid, BGX_SPUX_AN_ADV, cfg);
676 bgx_reg_modify(bgx, lmacid, BGX_CMRX_CFG, CMR_EN);
678 cfg = bgx_reg_read(bgx, lmacid, BGX_SPUX_CONTROL1);
680 bgx_reg_write(bgx, lmacid, BGX_SPUX_CONTROL1, cfg);
682 cfg = bgx_reg_read(bgx, lmacid, BGX_SMUX_TX_CTL);
685 bgx_reg_write(bgx, lmacid, BGX_SMUX_TX_CTL, cfg);
688 bgx_reg_modify(bgx, lmacid, BGX_SMUX_TX_THRESH, (0x100 - 1));
690 bgx_reg_modify(bgx, lmacid, BGX_SMUX_RX_JABBER, MAX_FRAME_SIZE);
699 int lmacid = lmac->lmacid;
703 bgx_reg_modify(bgx, lmacid, BGX_SPUX_MISC_CONTROL, SPU_MISC_CTL_RX_DIS);
705 cfg = bgx_reg_read(bgx, lmacid, BGX_SPUX_INT);
708 bgx_reg_write(bgx, lmacid, BGX_SPUX_INT, cfg);
709 cfg = bgx_reg_read(bgx, lmacid, BGX_SPUX_BR_PMD_CRTL);
711 bgx_reg_write(bgx, lmacid, BGX_SPUX_BR_PMD_CRTL, cfg);
717 if (bgx_poll_reg(bgx, lmacid, BGX_SPUX_CONTROL1,
725 if (bgx_poll_reg(bgx, lmacid, BGX_SPUX_BR_STATUS1,
732 if (bgx_poll_reg(bgx, lmacid, BGX_SPUX_BX_STATUS,
741 bgx_reg_modify(bgx, lmacid, BGX_SPUX_STATUS2, SPU_STATUS2_RCVFLT);
742 if (bgx_reg_read(bgx, lmacid, BGX_SPUX_STATUS2) & SPU_STATUS2_RCVFLT) {
745 cfg = bgx_reg_read(bgx, lmacid, BGX_SPUX_INT);
748 bgx_reg_write(bgx, lmacid, BGX_SPUX_INT, cfg);
749 cfg = bgx_reg_read(bgx, lmacid,
752 bgx_reg_write(bgx, lmacid,
761 if (bgx_poll_reg(bgx, lmacid, BGX_SMUX_RX_CTL,
768 if (bgx_poll_reg(bgx, lmacid, BGX_SMUX_CTL,
775 if (bgx_poll_reg(bgx, lmacid, BGX_SMUX_CTL,
781 if ((bgx_reg_read(bgx, lmacid, BGX_SPUX_STATUS2) &
788 bgx_reg_modify(bgx, lmacid, BGX_SPUX_STATUS1, SPU_STATUS1_RCV_LNK);
789 if (bgx_poll_reg(bgx, lmacid, BGX_SPUX_STATUS1,
795 cfg = bgx_reg_read(bgx, lmacid, BGX_SPUX_MISC_CONTROL);
797 bgx_reg_write(bgx, lmacid, BGX_SPUX_MISC_CONTROL, cfg);
810 bgx_reg_modify(lmac->bgx, lmac->lmacid,
812 bgx_poll_reg(lmac->bgx, lmac->lmacid, BGX_SPUX_STATUS1,
815 link = bgx_reg_read(lmac->bgx, lmac->lmacid, BGX_SPUX_STATUS1);
837 bgx_lmac_enable(struct bgx *bgx, uint8_t lmacid)
843 lmac = &bgx->lmac[lmacid];
848 if (bgx_lmac_sgmii_init(bgx, lmacid) != 0)
852 if (bgx_lmac_xaui_init(bgx, lmacid, bgx->lmac_type))
857 cfg = bgx_reg_read(bgx, lmacid, BGX_GMP_GMI_TXX_APPEND);
859 bgx_reg_modify(bgx, lmacid, BGX_GMP_GMI_TXX_APPEND, cfg);
860 bgx_reg_write(bgx, lmacid, BGX_GMP_GMI_TXX_MIN_PKT, 60 - 1);
862 cfg = bgx_reg_read(bgx, lmacid, BGX_SMUX_TX_APPEND);
864 bgx_reg_modify(bgx, lmacid, BGX_SMUX_TX_APPEND, cfg);
865 bgx_reg_write(bgx, lmacid, BGX_SMUX_TX_MIN_PKT, 60 + 4);
869 bgx_reg_modify(bgx, lmacid, BGX_CMRX_CFG,
873 bgx_reg_write(bgx, lmacid, BGX_CMRX_RX_DMAC_CTL, 0x03);
876 bgx_add_dmac_addr(dmac_bcast, 0, bgx->bgx_id, lmacid);
885 "LMAC%d missing interface to PHY\n", lmacid);
890 lmacid) != 0) {
892 "LMAC%d could not connect to PHY\n", lmacid);
912 bgx_lmac_disable(struct bgx *bgx, uint8_t lmacid)
917 lmac = &bgx->lmac[lmacid];
923 cmrx_cfg = bgx_reg_read(bgx, lmacid, BGX_CMRX_CFG);
925 bgx_reg_write(bgx, lmacid, BGX_CMRX_CFG, cmrx_cfg);
926 bgx_flush_dmac_addrs(bgx, lmacid);
934 "LMAC%d missing interface to PHY\n", lmacid);
938 lmacid) != 0) {
940 "LMAC%d could not disconnect PHY\n", lmacid);