From owner-svn-src-head@freebsd.org Wed Sep 21 19:26:38 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 047F6BE2EC6; Wed, 21 Sep 2016 19:26:38 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BCFE51882; Wed, 21 Sep 2016 19:26:37 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u8LJQbAi007465; Wed, 21 Sep 2016 19:26:37 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u8LJQbOL007464; Wed, 21 Sep 2016 19:26:37 GMT (envelope-from np@FreeBSD.org) Message-Id: <201609211926.u8LJQbOL007464@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Wed, 21 Sep 2016 19:26:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r306137 - head/tools/tools/cxgbetool X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Sep 2016 19:26:38 -0000 Author: np Date: Wed Sep 21 19:26:36 2016 New Revision: 306137 URL: https://svnweb.freebsd.org/changeset/base/306137 Log: cxgbetool: Add T6 support to the SGE context decoder. Obtained from: Chelsio Communications Sponsored by: Chelsio Communications Modified: head/tools/tools/cxgbetool/cxgbetool.c Modified: head/tools/tools/cxgbetool/cxgbetool.c ============================================================================== --- head/tools/tools/cxgbetool/cxgbetool.c Wed Sep 21 19:11:37 2016 (r306136) +++ head/tools/tools/cxgbetool/cxgbetool.c Wed Sep 21 19:26:36 2016 (r306137) @@ -1360,7 +1360,7 @@ show_struct(const uint32_t *words, int n #define FIELD1(name, start) FIELD(name, start, start) static void -show_t5_ctxt(const struct t4_sge_context *p) +show_t5t6_ctxt(const struct t4_sge_context *p, int vers) { static struct field_desc egress_t5[] = { FIELD("DCA_ST:", 181, 191), @@ -1400,6 +1400,44 @@ show_t5_ctxt(const struct t4_sge_context FIELD1("CachePriority:", 0), { NULL } }; + static struct field_desc egress_t6[] = { + FIELD("DCA_ST:", 181, 191), + FIELD1("StatusPgNS:", 180), + FIELD1("StatusPgRO:", 179), + FIELD1("FetchNS:", 178), + FIELD1("FetchRO:", 177), + FIELD1("Valid:", 176), + FIELD1("ReschedulePending_1:", 175), + FIELD1("PCIeDataChannel:", 174), + FIELD1("StatusPgTPHintEn:", 173), + FIELD("StatusPgTPHint:", 171, 172), + FIELD1("FetchTPHintEn:", 170), + FIELD("FetchTPHint:", 168, 169), + FIELD1("FCThreshOverride:", 167), + { "WRLength:", 162, 166, 9, 0, 1 }, + FIELD1("WRLengthKnown:", 161), + FIELD1("ReschedulePending:", 160), + FIELD("TimerIx:", 157, 159), + FIELD1("FetchBurstMin:", 156), + FIELD1("FLMPacking:", 155), + FIELD("FetchBurstMax:", 153, 154), + FIELD("uPToken:", 133, 152), + FIELD1("uPTokenEn:", 132), + FIELD1("UserModeIO:", 131), + FIELD("uPFLCredits:", 123, 130), + FIELD1("uPFLCreditEn:", 122), + FIELD("FID:", 111, 121), + FIELD("HostFCMode:", 109, 110), + FIELD1("HostFCOwner:", 108), + { "CIDXFlushThresh:", 105, 107, 0, 0, 1 }, + FIELD("CIDX:", 89, 104), + FIELD("PIDX:", 73, 88), + { "BaseAddress:", 18, 72, 9, 1 }, + FIELD("QueueSize:", 2, 17), + FIELD1("QueueType:", 1), + FIELD1("FetchSizeMode:", 0), + { NULL } + }; static struct field_desc fl_t5[] = { FIELD("DCA_ST:", 181, 191), FIELD1("StatusPgNS:", 180), @@ -1470,6 +1508,42 @@ show_t5_ctxt(const struct t4_sge_context FIELD1("CachePriority:", 0), { NULL } }; + static struct field_desc ingress_t6[] = { + FIELD1("SP_NS:", 158), + FIELD1("SP_RO:", 157), + FIELD1("SP_TPHintEn:", 156), + FIELD("SP_TPHint:", 154, 155), + FIELD("DCA_ST:", 143, 153), + FIELD1("ISCSICoalescing:", 142), + FIELD1("Queue_Valid:", 141), + FIELD1("TimerPending:", 140), + FIELD1("DropRSS:", 139), + FIELD("PCIeChannel:", 137, 138), + FIELD1("SEInterruptArmed:", 136), + FIELD1("CongestionMgtEnable:", 135), + FIELD1("NoSnoop:", 134), + FIELD1("RelaxedOrdering:", 133), + FIELD1("GTSmode:", 132), + FIELD1("TPHintEn:", 131), + FIELD("TPHint:", 129, 130), + FIELD1("UpdateScheduling:", 128), + FIELD("UpdateDelivery:", 126, 127), + FIELD1("InterruptSent:", 125), + FIELD("InterruptIDX:", 114, 124), + FIELD1("InterruptDestination:", 113), + FIELD1("InterruptArmed:", 112), + FIELD("RxIntCounter:", 106, 111), + FIELD("RxIntCounterThreshold:", 104, 105), + FIELD1("Generation:", 103), + { "BaseAddress:", 48, 102, 9, 1 }, + FIELD("PIDX:", 32, 47), + FIELD("CIDX:", 16, 31), + { "QueueSize:", 4, 15, 4, 0 }, + { "QueueEntrySize:", 2, 3, 4, 0, 1 }, + FIELD1("QueueEntryOverride:", 1), + FIELD1("CachePriority:", 0), + { NULL } + }; static struct field_desc flm_t5[] = { FIELD1("Valid:", 89), FIELD("SplitLenMode:", 87, 88), @@ -1489,6 +1563,28 @@ show_t5_ctxt(const struct t4_sge_context FIELD("PIDX:", 0, 7), { NULL } }; + static struct field_desc flm_t6[] = { + FIELD1("Valid:", 89), + FIELD("SplitLenMode:", 87, 88), + FIELD1("TPHintEn:", 86), + FIELD("TPHint:", 84, 85), + FIELD1("NoSnoop:", 83), + FIELD1("RelaxedOrdering:", 82), + FIELD("DCA_ST:", 71, 81), + FIELD("EQid:", 54, 70), + FIELD("SplitEn:", 52, 53), + FIELD1("PadEn:", 51), + FIELD1("PackEn:", 50), + FIELD1("Cache_Lock :", 49), + FIELD1("CongDrop:", 48), + FIELD1("Inflifght:", 47), + FIELD1("CongEn:", 46), + FIELD1("CongMode:", 45), + FIELD("PackOffset:", 20, 39), + FIELD("CIDX:", 8, 15), + FIELD("PIDX:", 0, 7), + { NULL } + }; static struct field_desc conm_t5[] = { FIELD1("CngMPSEnable:", 21), FIELD("CngTPMode:", 19, 20), @@ -1499,12 +1595,17 @@ show_t5_ctxt(const struct t4_sge_context { NULL } }; - if (p->mem_id == SGE_CONTEXT_EGRESS) - show_struct(p->data, 6, (p->data[0] & 2) ? fl_t5 : egress_t5); - else if (p->mem_id == SGE_CONTEXT_FLM) - show_struct(p->data, 3, flm_t5); + if (p->mem_id == SGE_CONTEXT_EGRESS) { + if (p->data[0] & 2) + show_struct(p->data, 6, fl_t5); + else if (vers == 5) + show_struct(p->data, 6, egress_t5); + else + show_struct(p->data, 6, egress_t6); + } else if (p->mem_id == SGE_CONTEXT_FLM) + show_struct(p->data, 3, vers == 5 ? flm_t5 : flm_t6); else if (p->mem_id == SGE_CONTEXT_INGRESS) - show_struct(p->data, 5, ingress_t5); + show_struct(p->data, 5, vers == 5 ? ingress_t5 : ingress_t6); else if (p->mem_id == SGE_CONTEXT_CNM) show_struct(p->data, 1, conm_t5); } @@ -1689,7 +1790,7 @@ get_sge_context(int argc, const char *ar if (chip_id == 4) show_t4_ctxt(&cntxt); else - show_t5_ctxt(&cntxt); + show_t5t6_ctxt(&cntxt, chip_id); return (0); }