aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/marvell/octeontx2/nic
AgeCommit message (Collapse)Author
2020-01-30octeontx2-pf: Do not set num_msgs in mbox headerSubbaraya Sundeep
commit 8e7f7faf9d90a84283093e02b90a9e9a12b061ae from git@git.assembla.com:cavium/WindRiver.linux.git A single interrupt line from VF to PF is used by VF to send messages to PF and for replying to UP messages sent by PF. Hence num_msgs in mbox header is cleared explicitly in PF interrupt handler to avoid queuing a work twice for an event. The same num_msgs which was cleared in interrupt handler was set again in work queue handler by mistake. This patch fixes it. Also - clearing interrupt in work queue handlers is not necessary hence removed it. - checking status in message response is not needed hence removed it. Change-Id: I1875d37816b61b4874eea1c7175c63dfea71bcb1 Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com> Reviewed-on: https://sj1git1.cavium.com/20142 Tested-by: sa_ip-sw-jenkins <sa_ip-sw-jenkins@marvell.com> Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2020-01-30octeontx2-pf: Use mutex for mbox lockingSubbaraya Sundeep
commit 46a0ce95e2db7ffd083cd2634b7037f32e27501f from git@git.assembla.com:cavium/WindRiver.linux.git Used mutex instead atomic variables for mailbox lock. Also changed WARN_ON to dev_err. Change-Id: I18e1d3cc013bfc058db47a33ed5d123185d3c5ef Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com> Reviewed-on: https://sj1git1.cavium.com/20141 Tested-by: sa_ip-sw-jenkins <sa_ip-sw-jenkins@marvell.com> Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2020-01-30octeontx2-pf: Dereference only a valid pointerSubbaraya Sundeep
commit 7aff3a8035f71bfd3675067ea5b79e5ad9b7bd9d from git@git.assembla.com:cavium/WindRiver.linux.git iommu_domain can be NULL hence check for non NULL pointer before dereferencing it. Change-Id: Iff01276a67f35954f1556b731d43339d152e268d Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com> Reviewed-on: https://sj1git1.cavium.com/20065 Tested-by: sa_ip-sw-jenkins <sa_ip-sw-jenkins@marvell.com> Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2020-01-30octeontx2-pf: update vlan offload rulehariprasad
commit 4ece484b7a0b62a79ab098f75c2a592839d4d7fb from git@git.assembla.com:cavium/WindRiver.linux.git MAC address field in vlan offload rule and interface mac address needs to be same for VLAN offload functionality. So update mac address field in vlan offload rule whenever user changes it. Change-Id: I272ea3b94b7989fd15efd306c27dbae3dddfb2a6 Signed-off-by: hariprasad <hari1219@gmail.com> Reviewed-on: https://sj1git1.cavium.com/19826 Tested-by: sa_ip-sw-jenkins <sa_ip-sw-jenkins@marvell.com> Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2020-01-30octeontx2-pf: Set default RR_QUANTUM for transmit scheduling levelsGeetha sowjanya
commit bbcdd24b2067f23ce553f57bd5153a3e3793b651 from git@git.assembla.com:cavium/WindRiver.linux.git Set RR_QUANTUM value high for transmit levels to prevent negative accumulations of the deficit count. Change-Id: I015ed6cfb27f853d653ebd299492a11bf3990abe Signed-off-by: Geetha sowjanya <gakula@marvell.com> Reviewed-on: https://sj1git1.cavium.com/19885 Tested-by: sa_ip-sw-jenkins <sa_ip-sw-jenkins@marvell.com> Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2020-01-30octeontx2-pf: Skip dma map and unmap when IOMMU is bypassedSunil Goutham
commit 94cef32782641d0e0d89a93db273c583d8fb5dd6 from git@git.assembla.com:cavium/WindRiver.linux.git HW takes care of data coherency at LLC level, to save some CPU cycles skip calling dma_map and dma_unmap apis when IOMMU is bypassed. This improves IP forwarding performance by ~5%. These changes are not for upstream. Change-Id: Ie1be6982d62ffe4bbb4434092c0c5ce3575d9339 Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Reviewed-on: https://sj1git1.cavium.com/19664 Tested-by: sa_ip-sw-jenkins <sa_ip-sw-jenkins@marvell.com> Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-12-17octeontx2-pf: Use likely and unlikelySunil Goutham
commit 66a0f365f4618d9528abcdff121a9e57f7bbb1a2 from git@git.assembla.com:cavium/WindRiver.linux.git Add likely and unliley to conditional statements for generation of optimised code by compiler in terms of branching. Change-Id: I7a80fd14999e187732dd8b8b2037544b97bc8800 Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Reviewed-on: https://sj1git1.cavium.com/19653 Tested-by: sa_ip-sw-jenkins <sa_ip-sw-jenkins@marvell.com> Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-12-17octeontx2-pf: Process CQE_TX first and then CQE_RXSunil Goutham
commit 02237bdd58d65c17d5b502bb027290dd7a281bf2 from git@git.assembla.com:cavium/WindRiver.linux.git Process transmitted pkt's CQEs first so that the freed skbs are recycled for received packets. Change-Id: Ia399659851c4b8181619ee212d1c9ee26711efc6 Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Reviewed-on: https://sj1git1.cavium.com/19652 Tested-by: sa_ip-sw-jenkins <sa_ip-sw-jenkins@marvell.com> Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-12-16octeontx2-pf: Discover NIX block address from RVUMSubbaraya Sundeep
commit f5b4312caee99567741fcb75470673d69a771a18 from git@git.assembla.com:cavium/WindRiver.linux.git For platform with two NIX blocks, LF may be allocated from either of NIX blocks. Hence discover the assigned block address from RVUM register. Change-Id: Id34b7ad968c6b91ea41ef833fad6bdebfef61c51 Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com> Reviewed-on: https://sj1git1.cavium.com/19496 Tested-by: sa_ip-sw-jenkins <sa_ip-sw-jenkins@marvell.com> Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-12-16octeontx2-pf: Remove warning messages in fast pathGeetha sowjanya
commit 8d48b6712f60b9bf29c482c090f3aee1166ac37b from git@git.assembla.com:cavium/WindRiver.linux.git Change-Id: I0bf0176bf6cd32f3a0b4c7963836b848747d626e Signed-off-by: Geetha sowjanya <gakula@marvell.com> Reviewed-on: https://sj1git1.cavium.com/19129 Tested-by: sa_ip-sw-jenkins <sa_ip-sw-jenkins@marvell.com> Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-12-11octeontx2-af: Add new CGX_CMD to get PHY FEC statisticsFelix Manlunas
commit b1b525868f846e2599dd96ac881d8e483d162c0d from git@git.assembla.com:cavium/WindRiver.linux.git The stats are put in the shared data struct fwdata. A PHY driver indicates that it has FEC stats by setting the flag fwdata.phy.misc.has_fec_stats (for now, only the LIO3 card's 6141 PHY does this; all other PHYs clear that flag). On LIO3, FEC can be enabled at the PHY line-side only, never at the PHY host-side. So for LIO3, the ethtool FEC stats come from the PHY (not from CGX). Besides CGX_CMD_GET_PHY_FEC_STATS, also add CGX_CMD_PRBS and CGX_CMD_DISPLAY_EYE to enum cgx_cmd_id so that Linux's enum list is in sync with ATF's enum list. Change-Id: Ib0cb8e9315b88e3c3f1ddd16cae709f8837d4f1d Signed-off-by: Felix Manlunas <fmanlunas@marvell.com> Reviewed-on: https://sj1git1.cavium.com/18814 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-12-11octeontx2-pf: Remove ARM64 and LSE_ATOMICS dependencyGeetha sowjanya
commit a9d863bf6de65580c54c2424bdc0d09dce663b67 from git@git.assembla.com:cavium/WindRiver.linux.git Generic arm64 atomic APIs for "ldadd" and "ldeor" instructions can't be used if CONFIG_LSE_ATOMIC is disabled. Hence, using asm instructions to remove dependency on kernel config. Change-Id: I40fd44b6246b3fad7479bc3cd3115c93331f80b6 Signed-off-by: Geetha sowjanya <gakula@marvell.com> Reviewed-on: https://sj1git1.cavium.com/18269 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-11-26net: octeontx2-pf: Don't set the parse mode for LBKsKevin Hao
The LBKs are not allowed to set the parse mode. It will return an error if we try to do so, then cause a failure when opening these ports. Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-11-26octeontx2-pf: Allow setting VF mac and vlan only when PF is UPSunil Goutham
commit d91c0634ae5d5e9432f054919a1952dfd91507db from git@git.assembla.com:cavium/WindRiver.linux.git To install NPC MCAM rules to support VF MAC and VF VLAN settings PF needs to know ingress hw channel number. This info is sent to PF by AF in response to NIXLF_ALLOC mbox ie NIXLF init request. So skip 'set vf vlan' and 'set vf mac' if PF interface is not UP. Change-Id: Ib8d0c5c84296aa22090d39038055e769668ac07f Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Reviewed-on: https://sj1git1.cavium.com/18079 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-11-26octeontx2-pf: Use 2048 byte receive buffersSunil Goutham
commit 556600410db1e2490ebf8d46b8f4419b580d8e21 from git@git.assembla.com:cavium/WindRiver.linux.git Use 2048 byte buffers for better last level cache utilization or data distribution across regions. Change-Id: I726bc8919afb8f52bca7da1ff0facbd3cfc378df Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Reviewed-on: https://sj1git1.cavium.com/18078 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-11-26octeontx2-pf: Advertise lockless transmit capabilitySunil Goutham
commit 39c012db6c348c4f0d02d4a2724607a4e3fe25b4 from git@git.assembla.com:cavium/WindRiver.linux.git Usage of NETIF_F_LLTX is deprecated upstream hence this patch cannot be upstreamed. But still enabling this locally as it improves IP forwarding performance especially when all 24 cores are transmitting pkts. Change-Id: I33a58c0e71d63ee0937ba50c47c5476ba62be094 Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Reviewed-on: https://sj1git1.cavium.com/18065 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-11-26octeontx2-pf: Optimize populating SQE_HDRSunil Goutham
commit fc87b5d941e7357f1da2cd4fab5a71f6e230017d from git@git.assembla.com:cavium/WindRiver.linux.git Fields aura, qidx, pnc, df in SQE_HDR doesn't change for each SQE (or packet). Hence avoid repopulating them for every SQE, this saves few cycles. Change-Id: Ia968853def360aaa360888ec2328c97022e30436 Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Reviewed-on: https://sj1git1.cavium.com/18066 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-11-26octeontx2-pf: Cleanup otx2_nic and hw structsSunil Goutham
commit b17de4c302b0e2faad7bbf4e970538713f35775e from git@git.assembla.com:cavium/WindRiver.linux.git Move HW related settings info fields to otx2_hw struct and cleanup both otx2_nic and otx2_hw structs. Change-Id: Ic142c188b310fe5d4833fe1a85f211deb436a2bc Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Reviewed-on: https://sj1git1.cavium.com/18007 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-11-26octeontx2-pf: Aggregate multiple boolean fields into common flagsSunil Goutham
commit 97137802696ed80c4125a40ad97f6cd43ec86240 from git@git.assembla.com:cavium/WindRiver.linux.git Cleaned up multiple boolean fields and flags in otx2_nic struct into a single flags field. Change-Id: Ic090c8b06b7cc2c19a0121c913f674330486ad4c Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Reviewed-on: https://sj1git1.cavium.com/18006 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-11-26octeontx2-pf: Alloc only used MSIX vectorsSunil Goutham
commit c94525c3a9b0e992be718aa5dc214bdda0ebd3b8 from git@git.assembla.com:cavium/WindRiver.linux.git Each of the CGX mapped RVU PFVF has 210 MSIX vectors and kernel globally support only 8192 IRQs. So enabling 210 vectors for all PF, their VFs and LBKVFs results in failure of pci_alloc_vectors for some of the devices. Increasing the Linux IRQ count from 8192 has upstream depencency and for reasons unknown resulted in performance regression on Armada silicon. Since netdev drivers are not registering NPA block IRQs, reverse the NPA and NIX MSIX vectors allocation. This way we will end up using vectors less than half of what we are using currently. Vectors allocated are PF_INT + NIX_QINT + NIX_CINT (max queues/cores). Change-Id: I495c2d43caf0f9a8b12407ef44cfbe13bd01c25e Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Reviewed-on: https://sj1git1.cavium.com/17958 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-11-26octeontx2-pf: Use napi_complete_done instead of napi_completeSunil Goutham
commit b1eb5ae22500bf8984c4fe4facd0a55fc659a819 from git@git.assembla.com:cavium/WindRiver.linux.git Use napi_complete_done to allow for the use of gro_flush_timeout. Change-Id: Ic9456cbcd147c5613d5aa99301a80084ab23dd57 Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Reviewed-on: https://sj1git1.cavium.com/17957 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-11-26octeontx2-pf: Use napi_get_frags instead of build_skbSunil Goutham
commit 2e161e8b861ab07e73257e6c0abf29ffb042ada8 from git@git.assembla.com:cavium/WindRiver.linux.git For GRO'ble packets napi_get_frags helps in recycling SKBs instead of allocating new SKB for every packet. This improves performance of GRO'ble frames but effects IP forwarding performance. Change-Id: I191194cb5feefb1e617a4c7fa152f0e325d9aa1a Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Reviewed-on: https://sj1git1.cavium.com/17956 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-11-26octeontx2-pf: Fix CQE cleanup done while teardownSunil Goutham
commit e6c9a391e46edc478b6ac0b7bf57493a969979f0 from git@git.assembla.com:cavium/WindRiver.linux.git Current cleanup is done using napi structs which when used in non-napi context leads to issues. This patch fixes this issue. Change-Id: I3b13e5c4ec54e4a6a4f902e28170367f88a9ef67 Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Reviewed-on: https://sj1git1.cavium.com/17955 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-11-26octeontx2-pf: NAPI handler cleanupSunil Goutham
commit d8a3a2d822c226650d7f362c291d3c4ad0a7031e from git@git.assembla.com:cavium/WindRiver.linux.git Major changes done - Segregate Rx and Tx CQ handlers - Removed costly CQ_OP_STATUS reads, instead check cqe_type in cqe_hdr to determine valid CQE. Change-Id: I14bfcf2dae39178681464b10174fb269a89c46a0 Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Reviewed-on: https://sj1git1.cavium.com/17954 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-11-26octeontx2-pf: Support to enable EDSA/Higig2 pkts parsinghariprasad
commit e768cc7824fd22df72cdef19f517697408bd33d3 from git@git.assembla.com:cavium/WindRiver.linux.git When switch headers like EDSA, Higig2 etc are present in ingress or egress pkts the pkt parsing done by NPC needs to take additional headers into account. KPU profile handles these using specific PKINDs (the iKPU index) to start parsing pkts differently. This patch enables user to configure these PKINDs into HW for proper pkt parsing. Patch also handles changes to max frame size due to additional headers in pkt. higig2: ethtool --set-priv-flags eth0 higig2 on/off edsa: ethtool --set-priv-flags eth0 edsa on/off Change-Id: If27c198a555b480434a5d56e15f0f7cff3800144 Signed-off-by: hariprasad <hkelam@marvell.com> Reviewed-on: https://sj1git1.cavium.com/17912 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-11-26octeontx2-pf: Drop packets size more than configured FRSGeetha sowjanya
commit ec5575a4f4505c09b75c2d40b71371ef88c9be15 from git@git.assembla.com:cavium/WindRiver.linux.git Drop packets with length more than configured FRS to avoid SQ Meta-descriptor error. This patch also include some cleanup changes. Change-Id: I4c28134e004151094de125189f0f904d6a29a7a2 Signed-off-by: Geetha sowjanya <gakula@marvell.com> Reviewed-on: https://sj1git1.cavium.com/17865 Tested-by: sa_ip-sw-jenkins <sa_ip-sw-jenkins@marvell.com> Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> (cherry picked from commit f910cf67294b5f9ff3e902154e51afb218219997) Reviewed-on: https://sj1git1.cavium.com/17873 Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-11-26octeontx2-pf: Add LIO3 link modes to ethtool's list of supported modesFelix Manlunas
commit a108847efc4ad4a07bb7f5a2612391047e979620 from git@git.assembla.com:cavium/WindRiver.linux.git For the PHY host-side, LIO3 uses the Marvell proprietary PCS types 25GBASE-R2 and 50GBASE-R4; each is combined (at the PHY line-side) with its counterpart (25G/50G Ethernet Consortium) standard PCS type (25GBASE-R or 50GBASE-R2). ethtool is not aware of and does not support Marvell proprietary PCS types; it only knows about standard PCS types. So the PF driver must pass (to ethtool) information about LIO3's PHY line-side (not PHY host-side). To that end, replace the entries of the cgx_link_mode[] lookup table that correspond to the proprietary PCS types with their standard counterparts. Also, set the bits of the macro OTX2_ETHTOOL_SUPPORTED_MODES that correspond to the proprietary modes/types. Change-Id: I993906364747abb4f75ae5ce235bf6af96ee70d0 Signed-off-by: Felix Manlunas <fmanlunas@marvell.com> Reviewed-on: https://sj1git1.cavium.com/17825 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> (cherry picked from commit c0b60c39f136e42619e9a8602b52e299af1359d1) Reviewed-on: https://sj1git1.cavium.com/17834 [Kevin: Just some minor context mods in order to port to linux-yocto] Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-11-26octeontx2-pf: notify VF about ptp eventHarman Kalra
commit 1f56892993fb7d9b4aa13ed8481e3422e3d87ab1 from git@git.assembla.com:cavium/WindRiver.linux.git In case of PTP enable/disable event, PF should inform its VFs about the event. So that VFs can adjust the shifted data offset (viz 8 bytes on PTP enable). Change-Id: I83d45441ee18c53bad3b68249c32cdc273cf4fc9 Signed-off-by: Harman Kalra <hkalra@marvell.com> Reviewed-on: https://sj1git1.cavium.com/17618 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-11-26octeontx2-pf: Use BLKTYPE in register macrosSubbaraya Sundeep
commit 671aef6d85d317e805ac179c3d6d2983835e9ea1 from git@git.assembla.com:cavium/WindRiver.linux.git Use BLKTYPE instead of BLKADDR in register offset macros so that NIX1 block registers can also be accessed when required. Change-Id: I4f32885fe2fa28beb3483f84c3b13d4eb5818c04 Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com> Reviewed-on: https://sj1git1.cavium.com/17664 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-11-26octeontx2-pf: Fix wrong info in ethtool's list of supported link modesFelix Manlunas
commit 5fe1527404347eba09db0d56b92c5cbf0a2f3092 from git@git.assembla.com:cavium/WindRiver.linux.git In otx2_get_link_mode_info(), the signed integer literal "1" is left- shifted by a value obtained by the table lookup "cgx_link_mode[bit_position]". The result is then implicitly promoted from signed int to u64 before it gets bitwise-ORed and assigned to "ethtool_link_mode" (whose type is u64). This is problematic if the result of the table lookup (which is used as the number of bit positions to left shift) is greater than or equal to 31 (one less than the bitwidth of an int). Such a situation will lead to a wrong value for "ethtool_link_mode", causing ethtool to show wrong or incomplete information in the list of supported link modes. Fix it by adding the "ULL" suffix to "1". Change-Id: I411befd4ad23df2566bf5e9cd6141faeeb53a26c Signed-off-by: Felix Manlunas <fmanlunas@marvell.com> Reviewed-on: https://sj1git1.cavium.com/17524 Tested-by: sa_ip-sw-jenkins <sa_ip-sw-jenkins@marvell.com> Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> (cherry picked from commit 8b1d4774140e9b1ff99a49e2b6ab8b610631c2e9) Reviewed-on: https://sj1git1.cavium.com/17537 Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-11-26octeontx2-pf: Fix clearing SQ/CQ queue interruptGeetha sowjanya
commit 751d5a0b04b7af458779149ae33cf44071e9f905 from git@git.assembla.com:cavium/WindRiver.linux.git This patch fixes cleaning SQ/CQ queue interrupt bits and LBK VF interface state after changing Queue length or number of TX/RX queues using ethtool. Change-Id: Ic0b98cc4eee22ce32c2247a8c1ffc89c3dbea6aa Signed-off-by: Geetha sowjanya <gakula@marvell.com> Reviewed-on: https://sj1git1.cavium.com/16691 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-11-26octeontx2-pf: Simplify ndo vf mac and vlanhariprasad
commit 68c4f101435f82b4071116ff7457c51ffcdd90a8 from git@git.assembla.com:cavium/WindRiver.linux.git Irrespective of vf interface state always send request to AF. Change-Id: I0cae60a18cef19cd95990c4a17ec61429fc2ce2e Signed-off-by: hariprasad <hkelam@marvell.com> Reviewed-on: https://sj1git1.cavium.com/17412 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-10-31octeontx2-pf: Reset the PF/VF on MTU changeGeetha sowjanya
commit f511c212d5166756041444359251afff023f208b from git@git.assembla.com:cavium/WindRiver.linux.git Changing the MTU for high to low during packet transmission may lead to SMQ meta-descriptor enqueue error due to miss match in packet length and configured SMQ MAXLEN. Hence, reset the PF/VF inorder to flush SMQ before configuring new MTU. Change-Id: Icaa98653781907d9297431fc6a0b1d466d09b3e2 Signed-off-by: Geetha sowjanya <gakula@marvell.com> Reviewed-on: https://sj1git1.cavium.com/16447 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-10-31octeontx2-pf: Add shutdown sequence for PF/VFGeetha sowjanya
commit 90c64b10f51d921844ada550493594877724686a from git@git.assembla.com:cavium/WindRiver.linux.git This patch adds pci driver shutdown support device teardown on system reboot. Change-Id: I820ee817c1b8ed399d3e309b5060334c03c5f5e5 Signed-off-by: Geetha sowjanya <gakula@marvell.com> Reviewed-on: https://sj1git1.cavium.com/16060 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-10-31octeontx2-pf: Add rx vlan offload supporthariprasad
commit f18e37bd1cf6ffe13eff7c78154e222eeb50c676 from git@git.assembla.com:cavium/WindRiver.linux.git Support vlan offload in receive path by configuring NIX to strip outer vlan. Change-Id: I3b6c6be28fe9f1804843b6cc30d18afd06d76ed5 Signed-off-by: hariprasad <hkelam@marvell.com> Reviewed-on: https://sj1git1.cavium.com/15967 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-10-31octeontx2-pf: Clear mbox interrupt status earlySubbaraya Sundeep
commit 8f3dbde036b2e6b24d68aa66cf8f980be417d987 from git@git.assembla.com:cavium/WindRiver.linux.git As long as ISR is not cleared upcoming interrupts will be lost hence clear the ISR first and queue work for processing. Change-Id: Ifd68bbbe16b91bf5640d8c7b19478f24c205da6e Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com> Reviewed-on: https://sj1git1.cavium.com/15919 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-10-31octeontx2-pf: Interface Mode change using ethtool.Christina Jacob
commit ea8daebe069245b205b7bbf875113b6144edc97f from git@git.assembla.com:cavium/WindRiver.linux.git Support changing cgx link mode via ethtool. Example usage: ethtool -s ethX advertise <hex_value> Change-Id: I2e77f87c8ca0a6e684c446723f823fd51780f71e Signed-off-by: Christina Jacob <cjacob@marvell.com> Reviewed-on: https://sj1git1.cavium.com/15607 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> [Kevin: Change the definition of OTX2_ETHTOOL_ALL_MODES due to the __ETHTOOL_LINK_MODE_LAST chagne.] Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-10-31octeontx2-pf: Do not set mac address againSubbaraya Sundeep
commit aaca7982f8d0883ff2b8c17737cb18607f4cd99e from git@git.assembla.com:cavium/WindRiver.linux.git AF driver sets mac address for all PFs/VFs. Setting MAC address again in otx2_open enables RX traffic before setting up NAPI hence removed it. Change-Id: Icd6182d4428b81100c5d3d55dcddd2f2da870caa Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com> Reviewed-on: https://sj1git1.cavium.com/15665 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-10-31octeontx2-pf: remove redundant changes from speed change suppcrt.Christina Jacob
commit 889b9c4ab3ab62a5f56abe05d4e9b7eb64722a0f from git@git.assembla.com:cavium/WindRiver.linux.git clean up speed change support via ethtool. Change-Id: I3c9f606f04c67c01421660bb3759331aa5fd80b0 Signed-off-by: Christina Jacob <cjacob@marvell.com> Reviewed-on: https://sj1git1.cavium.com/15605 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-09-23octeontx2-pf: Add barrier to sync interface statusSubbaraya Sundeep
commit 446d57d2e083ee57defc821d23c52687cc880d75 from git@git.assembla.com:cavium/WindRiver.linux.git Ensure that intf_down flag is updated by using a barrier before enabling traffic. Change-Id: I61e003346030b69278d56b4d2a7bba5891470284 Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com> Reviewed-on: https://sj1git1.cavium.com/15093 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-09-23octeontx2-pf: Fix memory leak while freeing SQBsSunil Goutham
commit b785026db2f2feec5d76d7a63421c41bc50294da from git@git.assembla.com:cavium/WindRiver.linux.git Upon enabling SQ, HW immediately fetches 2 SQB pointers from the mapped Aura, these will not be freed back to Pool once SQ is disabled. So while cleanup if we do alloc pointer from Aura and free them to kernel then 2 SQB pointers will be leaked ie never freed. Hence Aura alloc pointer cannot be used, this patch fixes this issue by saving the SQB pointers freed to Pool in the driver itself and uses that list while cleanup. Change-Id: I0ecd2a71f55d0cbf16b9d5c57ec3bc983bcb1240 Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Reviewed-on: https://sj1git1.cavium.com/15089 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-09-23octeontx2-pf: Ignore NPC parser layer errorsGeetha sowjanya
commit d2a41a1a926cee01f0a2ac31a626afab33df0475 from git@git.assembla.com:cavium/WindRiver.linux.git NPC reports a layer error if none of the control flags are set in TCP packet and software drops the packets. Which is not RFC compliant. This patch fixes the issue by forwarding the packets without dropping. Change-Id: I1a2d371603124abdb2d57543478307bc13c83114 Signed-off-by: Geetha sowjanya <gakula@marvell.com> Reviewed-on: https://sj1git1.cavium.com/14568 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-09-23octeontx2-af: Transmit packets during SMQ flushSubbaraya Sundeep
commit accd6b7e1f2e7078aeaa9442862ca2165504ab2a from git@git.assembla.com:cavium/WindRiver.linux.git NIX SMQ flush may not complete if no send queue is transmitting packets. Hence packets need to be transmitted from a send queue when SMQ flush is initiated. This patch adds a SMQVF driver which is a stripped down version of VF netdev driver. The driver exports a function which can be called by AF driver during SMQ flush to transmit packets. A new VF of AF with pcifunc 17 is used for this purpose. So 17th AF VF should not attached to userspace. Change-Id: I6592f7615f33f423de2d464f7441864443f0dec4 Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com> Reviewed-on: https://sj1git1.cavium.com/14560 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-09-23octeontx2-pf: Use helper function for LBK VFSubbaraya Sundeep
commit 062ac62b16496d2d2d215d9712df8c9f7f225a44 from git@git.assembla.com:cavium/WindRiver.linux.git Helper function is available to check given device is LBK VF or not hence use it wherever required. Change-Id: Id0d548f51cd747fddbab7fde577d7968432b480e Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com> Reviewed-on: https://sj1git1.cavium.com/14476 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-09-23octeontx2-pf: Add debug messages for MSIX alloc failureSunil Goutham
commit 59a200836fd89dd2322910d0d700c4459770ee6f from git@git.assembla.com:cavium/WindRiver.linux.git Added a debug message for MSIX vector alloc and initialization failure. Change-Id: Id8adef75b0f37150555ef39609303bdea524eb52 Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Reviewed-on: https://sj1git1.cavium.com/14427 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-09-23octeontx2-pf: Use post increment STP to free pointers to AuraSunil Goutham
commit b17c623daff142f98b51c0234355bd33cc5f310e from git@git.assembla.com:cavium/WindRiver.linux.git Freeing buffer pointers to Aura needs a 128bit atomic store to two 64bit registers. A regular STP can get fissioned into two separate 64bit stores which will be ignored by Aura and buffer pointer will be lost. Hence use a post increment STP. Change-Id: I0e91250f16cfe875acdb1d2c1d051ddf90cf75de Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Reviewed-on: https://sj1git1.cavium.com/14426 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-09-23octeontx2-pf: Fix interface init and shutdown sequenceSunil Goutham
commit 41bf34f01baaa784960a3e5801a414eeea92ad0d from git@git.assembla.com:cavium/WindRiver.linux.git This patch fixes multiple issues - netif_carrier_off() should be done before disabling transmit at CGX/NPC level. - Fixed SQE free count checking in otx2_xmit() - In NAPI, added a check to wakeup a TXQ if incase it was stopped earlier due to queue full. - In otx2_open() 'pfvf->intf_down' should be cleared before enabling Rx at CGX/NPC level. Otherwise if in between CQ IRQ is raised then in NAPI CQ interrupt will be disabled forever. - In otx2_stop(), RQ and SQ sizes should not be cleared, otherwise upon interface DOWN and UP, RQ size will fallback to 256 which is not supported on 96xx A0. Also if user has changed RQ/SQ size via ethtool intf DOWN and UP will reset the sizes back to default. - Fixed time and packet coalescing settings, user given value was getting shifted due to wrong type used while clamping it to within supported ranges. Change-Id: I152ce646909e64ac6ff858ba0d253f3d59ea3d8d Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Reviewed-on: https://sj1git1.cavium.com/14394 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-09-23octeontx2-pf: Fix VF id in the FLR handlerSunil Goutham
commit 1ffaf44fda1307be64755ec8ccf030da724b33ea from git@git.assembla.com:cavium/WindRiver.linux.git A VF id of 64 in the FLR handler will result in BIT_ULL(64) which is useless. Change-Id: I4ff6644342829c5382e8b92123b1e4e73895a408 Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Reviewed-on: https://sj1git1.cavium.com/14393 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-09-23octeontx2-pf: Fix memory leaksSubbaraya Sundeep
commit 72a3457209479c5c4556b45ab327d938f733532d from git@git.assembla.com:cavium/WindRiver.linux.git Memory allocated for structures like receive queue and refill work are not getting freed. This patch fixes that. Change-Id: I685cc6a892b69ded3a98941d7c637a2de9795e5d Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com> Reviewed-on: https://sj1git1.cavium.com/14185 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2019-09-23octeontx2-pf: Disply the link detected status in ethtool commandChristina Jacob
commit c6c1cc2f94e0b5d3aad0dfb23653f1e562d6f3a2 from git@git.assembla.com:cavium/WindRiver.linux.git Extend support to disply the link detected status in ethtool <interface> command. Signed-off-by: Christina Jacob <cjacob@marvell.com> Change-Id: Id859c1eabb66607e8b9f2a5c18e5cf9641327b47 Reviewed-on: https://sj1git1.cavium.com/14142 Reviewed-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Tested-by: Sunil Kovvuri Goutham <Sunil.Goutham@cavium.com> Signed-off-by: Kevin Hao <kexin.hao@windriver.com>