Module Name: src
Committed By: simonb
Date: Mon Jun 22 02:26:20 UTC 2020
Modified Files:
src/sys/arch/mips/cavium: octeonvar.h
src/sys/arch/mips/cavium/dev: if_cnmac.c if_cnmacvar.h octeon_asx.c
octeon_asxvar.h octeon_ciu.c octeon_fpa.c octeon_fpavar.h
octeon_gmx.c octeon_gmxvar.h octeon_ipd.c octeon_ipdvar.h
octeon_pci.c octeon_pip.c octeon_pipvar.h octeon_pko.c
octeon_pkovar.h octeon_pow.c octeon_powvar.h
src/sys/arch/mips/conf: files.octeon
Log Message:
Remove unmaintained CNMAC_DEBUG debug code.
To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/mips/cavium/octeonvar.h
cvs rdiff -u -r1.22 -r1.23 src/sys/arch/mips/cavium/dev/if_cnmac.c
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/mips/cavium/dev/if_cnmacvar.h \
src/sys/arch/mips/cavium/dev/octeon_asx.c \
src/sys/arch/mips/cavium/dev/octeon_ciu.c
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/mips/cavium/dev/octeon_asxvar.h \
src/sys/arch/mips/cavium/dev/octeon_ipdvar.h \
src/sys/arch/mips/cavium/dev/octeon_pipvar.h \
src/sys/arch/mips/cavium/dev/octeon_pko.c
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/mips/cavium/dev/octeon_fpa.c
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/mips/cavium/dev/octeon_fpavar.h \
src/sys/arch/mips/cavium/dev/octeon_gmxvar.h \
src/sys/arch/mips/cavium/dev/octeon_ipd.c \
src/sys/arch/mips/cavium/dev/octeon_pip.c \
src/sys/arch/mips/cavium/dev/octeon_powvar.h
cvs rdiff -u -r1.13 -r1.14 src/sys/arch/mips/cavium/dev/octeon_gmx.c
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/mips/cavium/dev/octeon_pci.c \
src/sys/arch/mips/cavium/dev/octeon_pkovar.h
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/mips/cavium/dev/octeon_pow.c
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/mips/conf/files.octeon
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/mips/cavium/octeonvar.h
diff -u src/sys/arch/mips/cavium/octeonvar.h:1.11 src/sys/arch/mips/cavium/octeonvar.h:1.12
--- src/sys/arch/mips/cavium/octeonvar.h:1.11 Thu Jun 18 13:52:08 2020
+++ src/sys/arch/mips/cavium/octeonvar.h Mon Jun 22 02:26:19 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: octeonvar.h,v 1.11 2020/06/18 13:52:08 simonb Exp $ */
+/* $NetBSD: octeonvar.h,v 1.12 2020/06/22 02:26:19 simonb Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -415,47 +415,4 @@ octeon_get_cycles(void)
#endif
}
-/* -------------------------------------------------------------------------- */
-
-/* ---- event counter */
-
-#if defined(CNMAC_DEBUG)
-#define OCTEON_EVCNT_INC(sc, name) \
- do { (sc)->sc_ev_##name.ev_count++; } while (0)
-#define OCTEON_EVCNT_ADD(sc, name, n) \
- do { (sc)->sc_ev_##name.ev_count += (n); } while (0)
-#define OCTEON_EVCNT_ATTACH_EVCNTS(sc, entries, devname) \
-do { \
- int i; \
- const struct octeon_evcnt_entry *ee; \
- \
- for (i = 0; i < (int)__arraycount(entries); i++) { \
- ee = &(entries)[i]; \
- evcnt_attach_dynamic( \
- (struct evcnt *)((uintptr_t)(sc) + ee->ee_offset), \
- ee->ee_type, ee->ee_parent, devname, \
- ee->ee_name); \
- } \
-} while (0)
-#else
-#define OCTEON_EVCNT_INC(sc, name)
-#define OCTEON_EVCNT_ADD(sc, name, n)
-#define OCTEON_EVCNT_ATTACH_EVCNTS(sc, entries, devname)
-#endif
-
-struct octeon_evcnt_entry {
- size_t ee_offset;
- int ee_type;
- struct evcnt *ee_parent;
- const char *ee_name;
-};
-
-#define OCTEON_EVCNT_ENTRY(_sc_type, _var, _ev_type, _parent, _name) \
- { \
- .ee_offset = offsetof(_sc_type, sc_ev_##_var), \
- .ee_type = EVCNT_TYPE_##_ev_type, \
- .ee_parent = _parent, \
- .ee_name = _name \
- }
-
#endif /* _MIPS_OCTEON_OCTEONVAR_H_ */
Index: src/sys/arch/mips/cavium/dev/if_cnmac.c
diff -u src/sys/arch/mips/cavium/dev/if_cnmac.c:1.22 src/sys/arch/mips/cavium/dev/if_cnmac.c:1.23
--- src/sys/arch/mips/cavium/dev/if_cnmac.c:1.22 Thu Jun 18 13:52:08 2020
+++ src/sys/arch/mips/cavium/dev/if_cnmac.c Mon Jun 22 02:26:19 2020
@@ -1,24 +1,12 @@
-/* $NetBSD: if_cnmac.c,v 1.22 2020/06/18 13:52:08 simonb Exp $ */
+/* $NetBSD: if_cnmac.c,v 1.23 2020/06/22 02:26:19 simonb Exp $ */
#include <sys/cdefs.h>
#if 0
-__KERNEL_RCSID(0, "$NetBSD: if_cnmac.c,v 1.22 2020/06/18 13:52:08 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_cnmac.c,v 1.23 2020/06/22 02:26:19 simonb Exp $");
#endif
#include "opt_octeon.h"
-#ifdef CNMAC_DEBUG
-
-#ifndef DIAGNOSTIC
-#define DIAGNOSTIC
-#endif
-
-#ifndef DEBUG
-#define DEBUG
-#endif
-
-#endif
-
/*
* If no free send buffer is available, free all the sent buffers and bail out.
*/
@@ -83,14 +71,6 @@ __KERNEL_RCSID(0, "$NetBSD: if_cnmac.c,v
#include <mips/cavium/dev/octeon_smivar.h>
#include <mips/cavium/dev/if_cnmacvar.h>
-#ifdef CNMAC_DEBUG
-#define CNMAC_KASSERT(x) KASSERT(x)
-#define CNMAC_KDASSERT(x) KDASSERT(x)
-#else
-#define CNMAC_KASSERT(x)
-#define CNMAC_KDASSERT(x)
-#endif
-
/*
* Set the PKO to think command buffers are an odd length. This makes it so we
* never have to divide a comamnd across two buffers.
@@ -183,46 +163,6 @@ int cnmac_param_intr = 0;
CFATTACH_DECL_NEW(cnmac, sizeof(struct cnmac_softc),
cnmac_match, cnmac_attach, NULL, NULL);
-#ifdef CNMAC_DEBUG
-
-static const struct octeon_evcnt_entry octeon_evcnt_entries[] = {
-#define _ENTRY(name, type, parent, descr) \
- OCTEON_EVCNT_ENTRY(struct cnmac_softc, name, type, parent, descr)
- _ENTRY(rx, MISC, NULL, "rx"),
- _ENTRY(rxint, INTR, NULL, "rx intr"),
- _ENTRY(rxrs, MISC, NULL, "rx dynamic short"),
- _ENTRY(rxbufpkalloc, MISC, NULL, "rx buf pkt alloc"),
- _ENTRY(rxbufpkput, MISC, NULL, "rx buf pkt put"),
- _ENTRY(rxbufwqalloc, MISC, NULL, "rx buf wqe alloc"),
- _ENTRY(rxbufwqput, MISC, NULL, "rx buf wqe put"),
- _ENTRY(rxerrcode, MISC, NULL, "rx code error"),
- _ENTRY(rxerrfix, MISC, NULL, "rx fixup error"),
- _ENTRY(rxerrjmb, MISC, NULL, "rx jmb error"),
- _ENTRY(rxerrlink, MISC, NULL, "rx link error"),
- _ENTRY(rxerroff, MISC, NULL, "rx offload error"),
- _ENTRY(rxonperrshort, MISC, NULL, "rx onp fixup short error"),
- _ENTRY(rxonperrpreamble, MISC, NULL, "rx onp fixup preamble error"),
- _ENTRY(rxonperrcrc, MISC, NULL, "rx onp fixup crc error"),
- _ENTRY(rxonperraddress, MISC, NULL, "rx onp fixup address error"),
- _ENTRY(rxonponp, MISC, NULL, "rx onp fixup onp packets"),
- _ENTRY(rxonpok, MISC, NULL, "rx onp fixup success packets"),
- _ENTRY(tx, MISC, NULL, "tx"),
- _ENTRY(txadd, MISC, NULL, "tx add"),
- _ENTRY(txbufcballoc, MISC, NULL, "tx buf cb alloc"),
- _ENTRY(txbufcbget, MISC, NULL, "tx buf cb get"),
- _ENTRY(txbufgballoc, MISC, NULL, "tx buf gb alloc"),
- _ENTRY(txbufgbget, MISC, NULL, "tx buf gb get"),
- _ENTRY(txbufgbput, MISC, NULL, "tx buf gb put"),
- _ENTRY(txdel, MISC, NULL, "tx del"),
- _ENTRY(txerr, MISC, NULL, "tx error"),
- _ENTRY(txerrcmd, MISC, NULL, "tx cmd error"),
- _ENTRY(txerrgbuf, MISC, NULL, "tx gbuf error"),
- _ENTRY(txerrlink, MISC, NULL, "tx link error"),
- _ENTRY(txerrmkcmd, MISC, NULL, "tx makecmd error"),
-#undef _ENTRY
-};
-#endif
-
/* ---- buffer management */
static const struct cnmac_pool_param {
@@ -384,9 +324,6 @@ cnmac_attach(device_t parent, device_t s
sc->sc_rate_recv_fixup_odd_nibble_short_cap.tv_sec = 1;
sc->sc_rate_recv_fixup_odd_nibble_preamble_cap.tv_sec = 1;
sc->sc_rate_recv_fixup_odd_nibble_crc_cap.tv_sec = 1;
-#ifdef CNMAC_DEBUG
- sc->sc_rate_recv_fixup_odd_nibble_addr_cap.tv_sec = 1;
-#endif
/* XXX */
#if 1
@@ -398,9 +335,6 @@ cnmac_attach(device_t parent, device_t s
= octpow_intr_establish(OCTEON_POW_GROUP_PIP,
IPL_NET, cnmac_recv_intr, NULL, NULL);
- OCTEON_EVCNT_ATTACH_EVCNTS(sc, octeon_evcnt_entries,
- device_xname(sc->sc_dev));
-
dict = device_properties(sc->sc_gmx->sc_dev);
clk = prop_dictionary_get(dict, "rgmii-tx");
@@ -598,7 +532,8 @@ cnmac_mediastatus(struct ifnet *ifp, str
static inline void
cnmac_send_queue_flush_prefetch(struct cnmac_softc *sc)
{
- CNMAC_KASSERT(sc->sc_prefetch == 0);
+
+ KASSERT(sc->sc_prefetch == 0);
octfau_op_inc_fetch_8(&sc->sc_fau_done, 0);
sc->sc_prefetch = 1;
}
@@ -606,13 +541,10 @@ cnmac_send_queue_flush_prefetch(struct c
static inline void
cnmac_send_queue_flush_fetch(struct cnmac_softc *sc)
{
-#ifndef CNMAC_DEBUG
- if (!sc->sc_prefetch)
- return;
-#endif
- CNMAC_KASSERT(sc->sc_prefetch == 1);
+
+ KASSERT(sc->sc_prefetch == 1);
sc->sc_hard_done_cnt = octfau_op_inc_read_8(&sc->sc_fau_done);
- CNMAC_KASSERT(sc->sc_hard_done_cnt <= 0);
+ KASSERT(sc->sc_hard_done_cnt <= 0);
sc->sc_prefetch = 0;
}
@@ -623,8 +555,8 @@ cnmac_send_queue_flush(struct cnmac_soft
const int64_t sent_count = sc->sc_hard_done_cnt;
int i;
- CNMAC_KASSERT(sc->sc_flush == 0);
- CNMAC_KASSERT(sent_count <= 0);
+ KASSERT(sc->sc_flush == 0);
+ KASSERT(sent_count <= 0);
for (i = 0; i < 0 - sent_count; i++) {
struct mbuf *m;
@@ -633,7 +565,6 @@ cnmac_send_queue_flush(struct cnmac_soft
cnmac_send_queue_del(sc, &m, &gbuf);
octfpa_buf_put(cnmac_fb_sg, gbuf);
- OCTEON_EVCNT_INC(sc, txbufgbput);
m_freem(m);
@@ -650,12 +581,12 @@ cnmac_send_queue_flush_sync(struct cnmac
if (sc->sc_flush == 0)
return;
- CNMAC_KASSERT(sc->sc_flush > 0);
+ KASSERT(sc->sc_flush > 0);
/* XXX XXX XXX */
octfau_op_inc_read_8(&sc->sc_fau_done);
sc->sc_soft_req_cnt -= sc->sc_flush;
- CNMAC_KASSERT(sc->sc_soft_req_cnt >= 0);
+ KASSERT(sc->sc_soft_req_cnt >= 0);
/* XXX XXX XXX */
sc->sc_flush = 0;
@@ -671,7 +602,6 @@ cnmac_send_queue_is_full(struct cnmac_so
if (__predict_false(nofree_cnt == GATHER_QUEUE_SIZE - 1)) {
cnmac_send_queue_flush(sc);
- OCTEON_EVCNT_INC(sc, txerrgbuf);
cnmac_send_queue_flush_sync(sc);
return 1;
}
@@ -712,8 +642,6 @@ cnmac_send_queue_add(struct cnmac_softc
if ((m->m_flags & M_EXT) && m->m_ext.ext_free != NULL)
sc->sc_ext_callback_cnt++;
-
- OCTEON_EVCNT_INC(sc, txadd);
}
static inline void
@@ -722,7 +650,7 @@ cnmac_send_queue_del(struct cnmac_softc
struct _send_queue_entry *sqe;
sqe = SIMPLEQ_FIRST(&sc->sc_sendq);
- CNMAC_KASSERT(sqe != NULL);
+ KASSERT(sqe != NULL);
SIMPLEQ_REMOVE_HEAD(&sc->sc_sendq, _sqe_entry);
*rm = (void *)sqe;
@@ -730,10 +658,8 @@ cnmac_send_queue_del(struct cnmac_softc
if (((*rm)->m_flags & M_EXT) && (*rm)->m_ext.ext_free != NULL) {
sc->sc_ext_callback_cnt--;
- CNMAC_KASSERT(sc->sc_ext_callback_cnt >= 0);
+ KASSERT(sc->sc_ext_callback_cnt >= 0);
}
-
- OCTEON_EVCNT_INC(sc, txdel);
}
static inline int
@@ -748,11 +674,9 @@ cnmac_buf_free_work(struct cnmac_softc *
start_buffer = addr & ~(2048 - 1);
octfpa_buf_put_paddr(cnmac_fb_pkt, start_buffer);
- OCTEON_EVCNT_INC(sc, rxbufpkput);
}
octfpa_buf_put(cnmac_fb_wqe, work);
- OCTEON_EVCNT_INC(sc, rxbufwqput);
return 0;
}
@@ -761,17 +685,11 @@ static inline void
cnmac_buf_ext_free_m(struct mbuf *m, void *buf, size_t size, void *arg)
{
uint64_t *work = (void *)arg;
-#ifdef CNMAC_DEBUG
- struct cnmac_softc *sc = (void *)(uintptr_t)work[0];
-#endif
int s = splnet();
- OCTEON_EVCNT_INC(sc, rxrs);
-
octfpa_buf_put(cnmac_fb_wqe, work);
- OCTEON_EVCNT_INC(sc, rxbufwqput);
- CNMAC_KASSERT(m != NULL);
+ KASSERT(m != NULL);
pool_cache_put(mb_cache, m);
@@ -782,18 +700,13 @@ static inline void
cnmac_buf_ext_free_ext(struct mbuf *m, void *buf, size_t size, void *arg)
{
uint64_t *work = (void *)arg;
-#ifdef CNMAC_DEBUG
- struct cnmac_softc *sc = (void *)(uintptr_t)work[0];
-#endif
int s = splnet();
octfpa_buf_put(cnmac_fb_wqe, work);
- OCTEON_EVCNT_INC(sc, rxbufwqput);
octfpa_buf_put(cnmac_fb_pkt, buf);
- OCTEON_EVCNT_INC(sc, rxbufpkput);
- CNMAC_KASSERT(m != NULL);
+ KASSERT(m != NULL);
pool_cache_put(mb_cache, m);
@@ -886,7 +799,7 @@ cnmac_send_makecmd_gbuf(struct cnmac_sof
continue;
#if 0
- CNMAC_KASSERT(((uint32_t)m->m_data & (PAGE_SIZE - 1))
+ KASSERT(((uint32_t)m->m_data & (PAGE_SIZE - 1))
== (kvtophys((vaddr_t)m->m_data) & (PAGE_SIZE - 1)));
#endif
@@ -917,7 +830,7 @@ cnmac_send_makecmd_gbuf(struct cnmac_sof
}
}
- CNMAC_KASSERT(m == NULL);
+ KASSERT(m == NULL);
*rsegs = segs;
@@ -984,12 +897,12 @@ cnmac_send_cmd(struct cnmac_softc *sc, u
#endif
cmdptr += sc->sc_cmdptr.cmdptr_idx;
- CNMAC_KASSERT(cmdptr != NULL);
+ KASSERT(cmdptr != NULL);
*cmdptr++ = pko_cmd_w0;
*cmdptr++ = pko_cmd_w1;
- CNMAC_KASSERT(sc->sc_cmdptr.cmdptr_idx + 2 <= FPA_COMMAND_BUFFER_POOL_NWORDS - 1);
+ KASSERT(sc->sc_cmdptr.cmdptr_idx + 2 <= FPA_COMMAND_BUFFER_POOL_NWORDS - 1);
if (sc->sc_cmdptr.cmdptr_idx + 2 == FPA_COMMAND_BUFFER_POOL_NWORDS - 1) {
paddr_t buf;
@@ -1002,7 +915,6 @@ cnmac_send_cmd(struct cnmac_softc *sc, u
result = 1;
goto done;
}
- OCTEON_EVCNT_INC(sc, txbufcbget);
*cmdptr++ = buf;
sc->sc_cmdptr.cmdptr = (uint64_t)buf;
sc->sc_cmdptr.cmdptr_idx = 0;
@@ -1026,7 +938,6 @@ cnmac_send_buf(struct cnmac_softc *sc, s
error = cnmac_send_makecmd(sc, m, gbuf, &pko_cmd_w0, &pko_cmd_w1);
if (error != 0) {
/* Already logging */
- OCTEON_EVCNT_INC(sc, txerrmkcmd);
result = error;
goto done;
}
@@ -1034,7 +945,6 @@ cnmac_send_buf(struct cnmac_softc *sc, s
error = cnmac_send_cmd(sc, pko_cmd_w0, pko_cmd_w1, pwdc);
if (error != 0) {
/* Already logging */
- OCTEON_EVCNT_INC(sc, txerrcmd);
result = error;
}
@@ -1049,17 +959,13 @@ cnmac_send(struct cnmac_softc *sc, struc
uint64_t *gbuf = NULL;
int result = 0, error;
- OCTEON_EVCNT_INC(sc, tx);
-
gaddr = octfpa_buf_get_paddr(cnmac_fb_sg);
if (gaddr == 0) {
log(LOG_WARNING, "%s: can not allocate gather buffer from "
"free pool allocator\n", device_xname(sc->sc_dev));
- OCTEON_EVCNT_INC(sc, txerrgbuf);
result = 1;
goto done;
}
- OCTEON_EVCNT_INC(sc, txbufgbget);
#ifdef __mips_n32
KASSERT((gaddr & ~MIPS_PHYS_MASK) == 0);
@@ -1068,13 +974,12 @@ cnmac_send(struct cnmac_softc *sc, struc
gbuf = (uint64_t *)(uintptr_t)MIPS_PHYS_TO_XKPHYS_CACHED(gaddr);
#endif
- CNMAC_KASSERT(gbuf != NULL);
+ KASSERT(gbuf != NULL);
error = cnmac_send_buf(sc, m, gbuf, pwdc);
if (error != 0) {
/* Already logging */
octfpa_buf_put_paddr(cnmac_fb_sg, gaddr);
- OCTEON_EVCNT_INC(sc, txbufgbput);
result = error;
goto done;
}
@@ -1111,7 +1016,6 @@ cnmac_start(struct ifnet *ifp)
m_freem(m);
IF_DROP(&ifp->if_snd);
- OCTEON_EVCNT_INC(sc, txerrlink);
}
goto last;
}
@@ -1150,7 +1054,6 @@ cnmac_start(struct ifnet *ifp)
log(LOG_WARNING,
"%s: failed in the transmission of the packet\n",
device_xname(sc->sc_dev));
- OCTEON_EVCNT_INC(sc, txerr);
} else
sc->sc_soft_req_cnt++;
@@ -1323,7 +1226,7 @@ cnmac_recv_mbuf(struct cnmac_softc *sc,
MGETHDR(m, M_NOWAIT, MT_DATA);
if (m == NULL)
return 1;
- CNMAC_KASSERT(m != NULL);
+ KASSERT(m != NULL);
if ((word2 & PIP_WQE_WORD2_IP_BUFS) == 0) {
/* Dynamic short */
@@ -1355,7 +1258,7 @@ cnmac_recv_mbuf(struct cnmac_softc *sc,
work[0] = (uintptr_t)sc;
MEXTADD(m, ext_buf, ext_size, 0, ext_free, work);
- CNMAC_KASSERT(ISSET(m->m_flags, M_EXT));
+ KASSERT(ISSET(m->m_flags, M_EXT));
m->m_data = data;
m->m_len = m->m_pkthdr.len = (word1 & PIP_WQE_WORD1_LEN) >> 48;
@@ -1366,7 +1269,7 @@ cnmac_recv_mbuf(struct cnmac_softc *sc,
*rm = m;
- CNMAC_KASSERT(*rm != NULL);
+ KASSERT(*rm != NULL);
return 0;
}
@@ -1411,7 +1314,6 @@ cnmac_recv_check(struct cnmac_softc *sc,
log(LOG_DEBUG,
"%s: link is not up, the packet was dropped\n",
device_xname(sc->sc_dev));
- OCTEON_EVCNT_INC(sc, rxerrlink);
return 1;
}
@@ -1422,7 +1324,6 @@ cnmac_recv_check(struct cnmac_softc *sc,
&sc->sc_rate_recv_check_jumbo_cap))
log(LOG_DEBUG,
"jumbo frame was received\n");
- OCTEON_EVCNT_INC(sc, rxerrjmb);
return 1;
}
#endif
@@ -1445,7 +1346,6 @@ cnmac_recv_check(struct cnmac_softc *sc,
"(error code = %" PRId64 ")\n",
device_xname(sc->sc_dev), word2 & PIP_WQE_WORD2_NOIP_OPECODE);
}
- OCTEON_EVCNT_INC(sc, rxerrcode);
return 1;
}
@@ -1470,15 +1370,13 @@ cnmac_recv(struct cnmac_softc *sc, uint6
}
/* XXX XXX XXX */
- CNMAC_KASSERT(sc != NULL);
- CNMAC_KASSERT(work != NULL);
-
- OCTEON_EVCNT_INC(sc, rx);
+ KASSERT(sc != NULL);
+ KASSERT(work != NULL);
word2 = work[2];
ifp = &sc->sc_ethercom.ec_if;
- CNMAC_KASSERT(ifp != NULL);
+ KASSERT(ifp != NULL);
if (__predict_false(cnmac_recv_check(sc, word2) != 0)) {
if_statinc(ifp, if_ierrors);
@@ -1496,7 +1394,7 @@ cnmac_recv(struct cnmac_softc *sc, uint6
/* work[0] .. work[3] may not be valid any more */
- CNMAC_KASSERT(m != NULL);
+ KASSERT(m != NULL);
octipd_offload(word2, m->m_data, &m->m_pkthdr.csum_flags);
@@ -1570,16 +1468,16 @@ cnmac_recv_intr(void *data, uint64_t *wo
struct cnmac_softc *sc;
int port;
- CNMAC_KASSERT(work != NULL);
+ KASSERT(work != NULL);
port = (work[1] & PIP_WQE_WORD1_IPRT) >> 42;
- CNMAC_KASSERT(port < GMX_PORT_NUNITS);
+ KASSERT(port < GMX_PORT_NUNITS);
sc = cnmac_gsc[port];
- CNMAC_KASSERT(sc != NULL);
- CNMAC_KASSERT(port == sc->sc_port);
+ KASSERT(sc != NULL);
+ KASSERT(port == sc->sc_port);
/* XXX process all work queue entries anyway */
Index: src/sys/arch/mips/cavium/dev/if_cnmacvar.h
diff -u src/sys/arch/mips/cavium/dev/if_cnmacvar.h:1.2 src/sys/arch/mips/cavium/dev/if_cnmacvar.h:1.3
--- src/sys/arch/mips/cavium/dev/if_cnmacvar.h:1.2 Sun May 31 06:27:06 2020
+++ src/sys/arch/mips/cavium/dev/if_cnmacvar.h Mon Jun 22 02:26:19 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: if_cnmacvar.h,v 1.2 2020/05/31 06:27:06 simonb Exp $ */
+/* $NetBSD: if_cnmacvar.h,v 1.3 2020/06/22 02:26:19 simonb Exp $ */
#undef DEBUG
#undef TENBASET_DBG
@@ -118,42 +118,5 @@ struct cnmac_softc {
struct timeval sc_rate_recv_fixup_odd_nibble_preamble_cap;
struct timeval sc_rate_recv_fixup_odd_nibble_crc_last;
struct timeval sc_rate_recv_fixup_odd_nibble_crc_cap;
-#ifdef CNMAC_DEBUG
- struct timeval sc_rate_recv_fixup_odd_nibble_addr_last;
- struct timeval sc_rate_recv_fixup_odd_nibble_addr_cap;
-#endif
int sc_quirks;
-#ifdef CNMAC_DEBUG
- struct evcnt sc_ev_rx;
- struct evcnt sc_ev_rxint;
- struct evcnt sc_ev_rxrs;
- struct evcnt sc_ev_rxbufpkalloc;
- struct evcnt sc_ev_rxbufpkput;
- struct evcnt sc_ev_rxbufwqalloc;
- struct evcnt sc_ev_rxbufwqput;
- struct evcnt sc_ev_rxerrcode;
- struct evcnt sc_ev_rxerrfix;
- struct evcnt sc_ev_rxerrjmb;
- struct evcnt sc_ev_rxerrlink;
- struct evcnt sc_ev_rxerroff;
- struct evcnt sc_ev_rxonperrshort;
- struct evcnt sc_ev_rxonperrpreamble;
- struct evcnt sc_ev_rxonperrcrc;
- struct evcnt sc_ev_rxonperraddress;
- struct evcnt sc_ev_rxonponp;
- struct evcnt sc_ev_rxonpok;
- struct evcnt sc_ev_tx;
- struct evcnt sc_ev_txadd;
- struct evcnt sc_ev_txbufcballoc;
- struct evcnt sc_ev_txbufcbget;
- struct evcnt sc_ev_txbufgballoc;
- struct evcnt sc_ev_txbufgbget;
- struct evcnt sc_ev_txbufgbput;
- struct evcnt sc_ev_txdel;
- struct evcnt sc_ev_txerr;
- struct evcnt sc_ev_txerrcmd;
- struct evcnt sc_ev_txerrgbuf;
- struct evcnt sc_ev_txerrlink;
- struct evcnt sc_ev_txerrmkcmd;
-#endif
};
Index: src/sys/arch/mips/cavium/dev/octeon_asx.c
diff -u src/sys/arch/mips/cavium/dev/octeon_asx.c:1.2 src/sys/arch/mips/cavium/dev/octeon_asx.c:1.3
--- src/sys/arch/mips/cavium/dev/octeon_asx.c:1.2 Sun May 31 06:27:06 2020
+++ src/sys/arch/mips/cavium/dev/octeon_asx.c Mon Jun 22 02:26:19 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: octeon_asx.c,v 1.2 2020/05/31 06:27:06 simonb Exp $ */
+/* $NetBSD: octeon_asx.c,v 1.3 2020/06/22 02:26:19 simonb Exp $ */
/*
* Copyright (c) 2007 Internet Initiative Japan, Inc.
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: octeon_asx.c,v 1.2 2020/05/31 06:27:06 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: octeon_asx.c,v 1.3 2020/06/22 02:26:19 simonb Exp $");
#include "opt_octeon.h"
@@ -38,15 +38,6 @@ __KERNEL_RCSID(0, "$NetBSD: octeon_asx.c
#include <mips/cavium/dev/octeon_asxreg.h>
#include <mips/cavium/dev/octeon_asxvar.h>
-#ifdef CNMAC_DEBUG
-void octasx_intr_evcnt_attach(struct octasx_softc *);
-void octasx_intr_rml(void *);
-#endif
-
-#ifdef CNMAC_DEBUG
-struct octasx_softc *__octasx_softc;
-#endif
-
/* XXX */
void
octasx_init(struct octasx_attach_args *aa, struct octasx_softc **rsc)
@@ -67,12 +58,6 @@ octasx_init(struct octasx_attach_args *a
panic("can't map %s space", "asx register");
*rsc = sc;
-
-#ifdef CNMAC_DEBUG
- octasx_intr_evcnt_attach(sc);
- if (__octasx_softc == NULL)
- __octasx_softc = sc;
-#endif
}
#define _ASX_RD8(sc, off) \
@@ -82,17 +67,11 @@ octasx_init(struct octasx_attach_args *a
static int octasx_enable_tx(struct octasx_softc *, int);
static int octasx_enable_rx(struct octasx_softc *, int);
-#ifdef CNMAC_DEBUG
-static int octasx_enable_intr(struct octasx_softc *, int);
-#endif
int
octasx_enable(struct octasx_softc *sc, int enable)
{
-#ifdef CNMAC_DEBUG
- octasx_enable_intr(sc, enable);
-#endif
octasx_enable_tx(sc, enable);
octasx_enable_rx(sc, enable);
return 0;
@@ -126,56 +105,6 @@ octasx_enable_rx(struct octasx_softc *sc
return 0;
}
-#if defined(CNMAC_DEBUG)
-int octasx_intr_rml_verbose;
-
-static const struct octeon_evcnt_entry octasx_intr_evcnt_entries[] = {
-#define _ENTRY(name, type, parent, descr) \
- OCTEON_EVCNT_ENTRY(struct octasx_softc, name, type, parent, descr)
- _ENTRY(asxrxpsh, MISC, NULL, "asx tx fifo overflow"),
- _ENTRY(asxtxpop, MISC, NULL, "asx tx fifo underflow"),
- _ENTRY(asxovrflw, MISC, NULL, "asx rx fifo overflow"),
-#undef _ENTRY
-};
-
-void
-octasx_intr_evcnt_attach(struct octasx_softc *sc)
-{
- OCTEON_EVCNT_ATTACH_EVCNTS(sc, octasx_intr_evcnt_entries, "asx0");
-}
-
-void
-octasx_intr_rml(void *arg)
-{
- struct octasx_softc *sc = __octasx_softc;
- uint64_t reg = 0;
-
- reg = octasx_int_summary(sc);
- if (octasx_intr_rml_verbose)
- printf("%s: ASX_INT_REG=0x%016" PRIx64 "\n", __func__, reg);
- if (reg & ASX0_INT_REG_TXPSH)
- OCTEON_EVCNT_INC(sc, asxrxpsh);
- if (reg & ASX0_INT_REG_TXPOP)
- OCTEON_EVCNT_INC(sc, asxtxpop);
- if (reg & ASX0_INT_REG_OVRFLW)
- OCTEON_EVCNT_INC(sc, asxovrflw);
-}
-
-static int
-octasx_enable_intr(struct octasx_softc *sc, int enable)
-{
- uint64_t asx_int_xxx = 0;
-
- SET(asx_int_xxx,
- ASX0_INT_REG_TXPSH |
- ASX0_INT_REG_TXPOP |
- ASX0_INT_REG_OVRFLW);
- _ASX_WR8(sc, ASX0_INT_REG_OFFSET, asx_int_xxx);
- _ASX_WR8(sc, ASX0_INT_EN_OFFSET, enable ? asx_int_xxx : 0);
- return 0;
-}
-#endif
-
int
octasx_clk_set(struct octasx_softc *sc, int tx_setting, int rx_setting)
{
@@ -183,66 +112,3 @@ octasx_clk_set(struct octasx_softc *sc,
_ASX_WR8(sc, ASX0_RX_CLK_SET0_OFFSET + 8 * sc->sc_port, rx_setting);
return 0;
}
-
-#ifdef CNMAC_DEBUG
-uint64_t
-octasx_int_summary(struct octasx_softc *sc)
-{
- uint64_t summary;
-
- summary = _ASX_RD8(sc, ASX0_INT_REG_OFFSET);
- _ASX_WR8(sc, ASX0_INT_REG_OFFSET, summary);
- return summary;
-}
-
-#define _ENTRY(x) { #x, x##_BITS, x##_OFFSET }
-
-struct octasx_dump_reg_ {
- const char *name;
- const char *format;
- size_t offset;
-};
-
-void octasx_dump(void);
-
-static const struct octasx_dump_reg_ octasx_dump_regs_[] = {
- _ENTRY(ASX0_RX_PRT_EN),
- _ENTRY(ASX0_TX_PRT_EN),
- _ENTRY(ASX0_INT_REG),
- _ENTRY(ASX0_INT_EN),
- _ENTRY(ASX0_RX_CLK_SET0),
- _ENTRY(ASX0_RX_CLK_SET1),
- _ENTRY(ASX0_RX_CLK_SET2),
- _ENTRY(ASX0_PRT_LOOP),
- _ENTRY(ASX0_TX_CLK_SET0),
- _ENTRY(ASX0_TX_CLK_SET1),
- _ENTRY(ASX0_TX_CLK_SET2),
- _ENTRY(ASX0_COMP_BYP),
- _ENTRY(ASX0_TX_HI_WATER000),
- _ENTRY(ASX0_TX_HI_WATER001),
- _ENTRY(ASX0_TX_HI_WATER002),
- _ENTRY(ASX0_GMII_RX_CLK_SET),
- _ENTRY(ASX0_GMII_RX_DAT_SET),
- _ENTRY(ASX0_MII_RX_DAT_SET),
-};
-
-void
-octasx_dump(void)
-{
- struct octasx_softc *sc = __octasx_softc;
- const struct octasx_dump_reg_ *reg;
- uint64_t tmp;
- char buf[512];
- int i;
-
- for (i = 0; i < (int)__arraycount(octasx_dump_regs_); i++) {
- reg = &octasx_dump_regs_[i];
- tmp = _ASX_RD8(sc, reg->offset);
- if (reg->format == NULL)
- snprintf(buf, sizeof(buf), "%016" PRIx64, tmp);
- else
- snprintb(buf, sizeof(buf), reg->format, tmp);
- printf("\t%-24s: %s\n", reg->name, buf);
- }
-}
-#endif
Index: src/sys/arch/mips/cavium/dev/octeon_ciu.c
diff -u src/sys/arch/mips/cavium/dev/octeon_ciu.c:1.2 src/sys/arch/mips/cavium/dev/octeon_ciu.c:1.3
--- src/sys/arch/mips/cavium/dev/octeon_ciu.c:1.2 Sun May 31 06:27:06 2020
+++ src/sys/arch/mips/cavium/dev/octeon_ciu.c Mon Jun 22 02:26:19 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: octeon_ciu.c,v 1.2 2020/05/31 06:27:06 simonb Exp $ */
+/* $NetBSD: octeon_ciu.c,v 1.3 2020/06/22 02:26:19 simonb Exp $ */
/*
* Copyright (c) 2008 Internet Initiative Japan, Inc.
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: octeon_ciu.c,v 1.2 2020/05/31 06:27:06 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: octeon_ciu.c,v 1.3 2020/06/22 02:26:19 simonb Exp $");
#include "opt_octeon.h"
@@ -43,89 +43,4 @@ __KERNEL_RCSID(0, "$NetBSD: octeon_ciu.c
#include <mips/cavium/octeonvar.h>
#include <mips/cavium/dev/octeon_ciureg.h>
-#ifdef CIUDEBUG
-#define DPRINTF(x) printf x
-#else
-#define DPRINTF(x)
-#endif
-
-#ifdef CNMAC_DEBUG
-void octciu_dump(void);
-void octciu_dump_regs(void);
-
-#define _ENTRY(x) { #x, x##_BITS, x }
-
-struct octciu_dump_reg_entry {
- const char *name;
- const char *format;
- paddr_t address;
-};
-
-static const struct octciu_dump_reg_entry octciu_dump_regs_entries[] = {
- _ENTRY(CIU_INT0_SUM0),
- _ENTRY(CIU_INT1_SUM0),
- _ENTRY(CIU_INT2_SUM0),
- _ENTRY(CIU_INT3_SUM0),
- _ENTRY(CIU_INT32_SUM0),
- _ENTRY(CIU_INT_SUM1),
- _ENTRY(CIU_INT0_EN0),
- _ENTRY(CIU_INT1_EN0),
- _ENTRY(CIU_INT2_EN0),
- _ENTRY(CIU_INT3_EN0),
- _ENTRY(CIU_INT32_EN0),
- _ENTRY(CIU_INT0_EN1),
- _ENTRY(CIU_INT1_EN1),
- _ENTRY(CIU_INT2_EN1),
- _ENTRY(CIU_INT3_EN1),
- _ENTRY(CIU_INT32_EN1),
- _ENTRY(CIU_TIM0),
- _ENTRY(CIU_TIM1),
- _ENTRY(CIU_TIM2),
- _ENTRY(CIU_TIM3),
- _ENTRY(CIU_WDOG0),
- _ENTRY(CIU_WDOG1),
- /* _ENTRY(CIU_PP_POKE0), */
- /* _ENTRY(CIU_PP_POKE1), */
- _ENTRY(CIU_MBOX_SET0),
- _ENTRY(CIU_MBOX_SET1),
- _ENTRY(CIU_MBOX_CLR0),
- _ENTRY(CIU_MBOX_CLR1),
- _ENTRY(CIU_PP_RST),
- _ENTRY(CIU_PP_DBG),
- _ENTRY(CIU_GSTOP),
- _ENTRY(CIU_NMI),
- _ENTRY(CIU_DINT),
- _ENTRY(CIU_FUSE),
- _ENTRY(CIU_BIST),
- _ENTRY(CIU_SOFT_BIST),
- _ENTRY(CIU_SOFT_RST),
- _ENTRY(CIU_SOFT_PRST),
- _ENTRY(CIU_PCI_INTA)
-};
-
-void
-octciu_dump(void)
-{
- octciu_dump_regs();
-}
-
-void
-octciu_dump_regs(void)
-{
- const struct octciu_dump_reg_entry *reg;
- uint64_t tmp;
- char buf[512];
- int i;
-
- for (i = 0; i < (int)__arraycount(octciu_dump_regs_entries); i++) {
- reg = &octciu_dump_regs_entries[i];
- tmp = octeon_xkphys_read_8(reg->address);
- if (reg->format == NULL) {
- snprintf(buf, sizeof(buf), "%16" PRIx64, tmp);
- } else {
- snprintb(buf, sizeof(buf), reg->format, tmp);
- }
- printf("\t%-24s: %s\n", reg->name, buf);
- }
-}
-#endif
+/* XXX keep this file? */
Index: src/sys/arch/mips/cavium/dev/octeon_asxvar.h
diff -u src/sys/arch/mips/cavium/dev/octeon_asxvar.h:1.3 src/sys/arch/mips/cavium/dev/octeon_asxvar.h:1.4
--- src/sys/arch/mips/cavium/dev/octeon_asxvar.h:1.3 Thu Jun 18 13:52:08 2020
+++ src/sys/arch/mips/cavium/dev/octeon_asxvar.h Mon Jun 22 02:26:19 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: octeon_asxvar.h,v 1.3 2020/06/18 13:52:08 simonb Exp $ */
+/* $NetBSD: octeon_asxvar.h,v 1.4 2020/06/22 02:26:19 simonb Exp $ */
/*
* Copyright (c) 2007 Internet Initiative Japan, Inc.
@@ -34,11 +34,6 @@ struct octasx_softc {
int sc_port;
bus_space_tag_t sc_regt;
bus_space_handle_t sc_regh;
-#if defined(OCTEON_DEBUG) || defined(CNMAC_DEBUG)
- struct evcnt sc_ev_asxrxpsh;
- struct evcnt sc_ev_asxtxpop;
- struct evcnt sc_ev_asxovrflw;
-#endif
};
/* XXX */
Index: src/sys/arch/mips/cavium/dev/octeon_ipdvar.h
diff -u src/sys/arch/mips/cavium/dev/octeon_ipdvar.h:1.3 src/sys/arch/mips/cavium/dev/octeon_ipdvar.h:1.4
--- src/sys/arch/mips/cavium/dev/octeon_ipdvar.h:1.3 Thu Jun 18 13:52:08 2020
+++ src/sys/arch/mips/cavium/dev/octeon_ipdvar.h Mon Jun 22 02:26:20 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: octeon_ipdvar.h,v 1.3 2020/06/18 13:52:08 simonb Exp $ */
+/* $NetBSD: octeon_ipdvar.h,v 1.4 2020/06/22 02:26:20 simonb Exp $ */
/*
* Copyright (c) 2007 Internet Initiative Japan, Inc.
@@ -36,13 +36,6 @@ struct octipd_softc {
bus_space_handle_t sc_regh;
size_t sc_first_mbuff_skip;
size_t sc_not_first_mbuff_skip;
-#ifdef CNMAC_DEBUG
- struct evcnt sc_ev_ipdbpsub;
- struct evcnt sc_ev_ipdprcpar3;
- struct evcnt sc_ev_ipdprcpar2;
- struct evcnt sc_ev_ipdprcpar1;
- struct evcnt sc_ev_ipdprcpar0;
-#endif
};
/* XXX */
@@ -53,20 +46,11 @@ struct octipd_attach_args {
size_t aa_not_first_mbuff_skip;
};
-void octipd_init(struct octipd_attach_args *,
- struct octipd_softc **);
-int octipd_enable(struct octipd_softc *);
-int octipd_config(struct octipd_softc *);
-int octipd_red(struct octipd_softc *, uint64_t, uint64_t);
-void octipd_sub_port_fcs(struct octipd_softc *, int);
-void octipd_offload(uint64_t, void *, int *);
-
-#ifdef CNMAC_DEBUG
-void octipd_int_enable(struct octipd_softc *, int);
-uint64_t octipd_int_summary(struct octipd_softc *);
-#endif /* CNMAC_DEBUG */
-#ifdef CNMAC_DEBUG
-void octipd_int_enable(struct octipd_softc *, int);
-#endif /* CNMAC_DEBUG */
+void octipd_init(struct octipd_attach_args *, struct octipd_softc **);
+int octipd_enable(struct octipd_softc *);
+int octipd_config(struct octipd_softc *);
+int octipd_red(struct octipd_softc *, uint64_t, uint64_t);
+void octipd_sub_port_fcs(struct octipd_softc *, int);
+void octipd_offload(uint64_t, void *, int *);
#endif /* _OCTEON_IPDVAR_H_ */
Index: src/sys/arch/mips/cavium/dev/octeon_pipvar.h
diff -u src/sys/arch/mips/cavium/dev/octeon_pipvar.h:1.3 src/sys/arch/mips/cavium/dev/octeon_pipvar.h:1.4
--- src/sys/arch/mips/cavium/dev/octeon_pipvar.h:1.3 Thu Jun 18 13:52:08 2020
+++ src/sys/arch/mips/cavium/dev/octeon_pipvar.h Mon Jun 22 02:26:20 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: octeon_pipvar.h,v 1.3 2020/06/18 13:52:08 simonb Exp $ */
+/* $NetBSD: octeon_pipvar.h,v 1.4 2020/06/22 02:26:20 simonb Exp $ */
/*
* Copyright (c) 2007 Internet Initiative Japan, Inc.
@@ -38,14 +38,6 @@ struct octpip_softc {
int sc_tag_type;
int sc_receive_group;
size_t sc_ip_offset;
-#ifdef CNMAC_DEBUG
- struct evcnt sc_ev_pipbeperr;
- struct evcnt sc_ev_pipfeperr;
- struct evcnt sc_ev_pipskprunt;
- struct evcnt sc_ev_pipbadtag;
- struct evcnt sc_ev_pipprtnxa;
- struct evcnt sc_ev_pippktdrp;
-#endif
};
/* XXX */
@@ -63,16 +55,5 @@ void octpip_gbl_ctl_debug(struct octpip
int octpip_port_config(struct octpip_softc *);
void octpip_prt_cfg_enable(struct octpip_softc *, uint64_t, int);
void octpip_stats(struct octpip_softc *, struct ifnet *, int);
-#ifdef CNMAC_DEBUG
-void octpip_int_enable(struct octpip_softc *, int);
-void octpip_dump(void);
-void octpip_dump_regs(void);
-void octpip_dump_stats(void);
-#endif /* CNMAC_DEBUG */
-
-#ifdef CNMAC_DEBUG
-void octpip_int_enable(struct octpip_softc *, int);
-uint64_t octpip_int_summary(struct octpip_softc *);
-#endif /* CNMAC_DEBUG */
#endif /* _OCTEON_PIPVAR_H_ */
Index: src/sys/arch/mips/cavium/dev/octeon_pko.c
diff -u src/sys/arch/mips/cavium/dev/octeon_pko.c:1.3 src/sys/arch/mips/cavium/dev/octeon_pko.c:1.4
--- src/sys/arch/mips/cavium/dev/octeon_pko.c:1.3 Thu Jun 18 13:52:08 2020
+++ src/sys/arch/mips/cavium/dev/octeon_pko.c Mon Jun 22 02:26:20 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: octeon_pko.c,v 1.3 2020/06/18 13:52:08 simonb Exp $ */
+/* $NetBSD: octeon_pko.c,v 1.4 2020/06/22 02:26:20 simonb Exp $ */
/*
* Copyright (c) 2007 Internet Initiative Japan, Inc.
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: octeon_pko.c,v 1.3 2020/06/18 13:52:08 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: octeon_pko.c,v 1.4 2020/06/22 02:26:20 simonb Exp $");
#include "opt_octeon.h"
@@ -42,20 +42,11 @@ __KERNEL_RCSID(0, "$NetBSD: octeon_pko.c
#include <mips/cavium/dev/octeon_pkoreg.h>
#include <mips/cavium/dev/octeon_pkovar.h>
-#ifdef CNMAC_DEBUG
-void octpko_intr_evcnt_attach(struct octpko_softc *);
-void octpko_intr_rml(void *);
-#endif
-
#define _PKO_RD8(sc, off) \
bus_space_read_8((sc)->sc_regt, (sc)->sc_regh, (off))
#define _PKO_WR8(sc, off, v) \
bus_space_write_8((sc)->sc_regt, (sc)->sc_regh, (off), (v))
-#ifdef CNMAC_DEBUG
-struct octpko_softc *__octpko_softc;
-#endif
-
/* ----- gloal functions */
/* XXX */
@@ -81,11 +72,6 @@ octpko_init(struct octpko_attach_args *a
panic("can't map %s space", "pko register");
*rsc = sc;
-
-#ifdef CNMAC_DEBUG
- octpko_intr_evcnt_attach(sc);
- __octpko_softc = sc;
-#endif
}
int
@@ -125,10 +111,6 @@ octpko_config(struct octpko_softc *sc)
SET(reg_cmd_buf, (sc->sc_cmd_buf_pool << 20) & PKO_REG_CMD_BUF_POOL);
SET(reg_cmd_buf, sc->sc_cmd_buf_size & PKO_REG_CMD_BUF_SIZE);
_PKO_WR8(sc, PKO_REG_CMD_BUF_OFFSET, reg_cmd_buf);
-
-#ifdef CNMAC_DEBUG
- octpko_int_enable(sc, 1);
-#endif
}
int
@@ -192,60 +174,3 @@ octpko_port_config(struct octpko_softc *
return 0;
}
-
-#ifdef CNMAC_DEBUG
-int octpko_intr_rml_verbose;
-struct evcnt octpko_intr_evcnt;
-
-static const struct octeon_evcnt_entry octpko_intr_evcnt_entries[] = {
-#define _ENTRY(name, type, parent, descr) \
- OCTEON_EVCNT_ENTRY(struct octpko_softc, name, type, parent, descr)
- _ENTRY(pkoerrdbell, MISC, NULL, "pko doorbell overflow"),
- _ENTRY(pkoerrparity, MISC, NULL, "pko parity error")
-#undef _ENTRY
-};
-
-void
-octpko_intr_evcnt_attach(struct octpko_softc *sc)
-{
- OCTEON_EVCNT_ATTACH_EVCNTS(sc, octpko_intr_evcnt_entries, "pko0");
-}
-
-void
-octpko_intr_rml(void *arg)
-{
- struct octpko_softc *sc;
- uint64_t reg;
-
- octpko_intr_evcnt.ev_count++;
- sc = __octpko_softc;
- KASSERT(sc != NULL);
- reg = octpko_int_summary(sc);
- if (octpko_intr_rml_verbose)
- printf("%s: PKO_REG_ERROR=0x%016" PRIx64 "\n", __func__, reg);
- if (reg & PKO_REG_ERROR_DOORBELL)
- OCTEON_EVCNT_INC(sc, pkoerrdbell);
- if (reg & PKO_REG_ERROR_PARITY)
- OCTEON_EVCNT_INC(sc, pkoerrparity);
-}
-
-void
-octpko_int_enable(struct octpko_softc *sc, int enable)
-{
- uint64_t pko_int_xxx = 0;
-
- pko_int_xxx = PKO_REG_ERROR_DOORBELL | PKO_REG_ERROR_PARITY;
- _PKO_WR8(sc, PKO_REG_ERROR_OFFSET, pko_int_xxx);
- _PKO_WR8(sc, PKO_REG_INT_MASK_OFFSET, enable ? pko_int_xxx : 0);
-}
-
-uint64_t
-octpko_int_summary(struct octpko_softc *sc)
-{
- uint64_t summary;
-
- summary = _PKO_RD8(sc, PKO_REG_ERROR_OFFSET);
- _PKO_WR8(sc, PKO_REG_ERROR_OFFSET, summary);
- return summary;
-}
-#endif
Index: src/sys/arch/mips/cavium/dev/octeon_fpa.c
diff -u src/sys/arch/mips/cavium/dev/octeon_fpa.c:1.6 src/sys/arch/mips/cavium/dev/octeon_fpa.c:1.7
--- src/sys/arch/mips/cavium/dev/octeon_fpa.c:1.6 Thu Jun 18 13:52:08 2020
+++ src/sys/arch/mips/cavium/dev/octeon_fpa.c Mon Jun 22 02:26:20 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: octeon_fpa.c,v 1.6 2020/06/18 13:52:08 simonb Exp $ */
+/* $NetBSD: octeon_fpa.c,v 1.7 2020/06/22 02:26:20 simonb Exp $ */
/*
* Copyright (c) 2007 Internet Initiative Japan, Inc.
@@ -29,7 +29,7 @@
#undef FPADEBUG
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: octeon_fpa.c,v 1.6 2020/06/18 13:52:08 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: octeon_fpa.c,v 1.7 2020/06/22 02:26:20 simonb Exp $");
#include "opt_octeon.h"
@@ -72,17 +72,6 @@ struct octfpa_softc {
bus_dma_tag_t sc_dmat;
struct octfpa_desc sc_descs[8];
-
-#ifdef CNMAC_DEBUG
- struct evcnt sc_ev_fpaq7perr;
- struct evcnt sc_ev_fpaq7coff;
- struct evcnt sc_ev_fpaq7und;
- struct evcnt sc_ev_fpaq6perr;
- struct evcnt sc_ev_fpaq6coff;
- struct evcnt sc_ev_fpaq6und;
- struct evcnt sc_ev_fpaq5perr;
- struct evcnt sc_ev_fpaq5coff;
-#endif
};
void octfpa_bootstrap(struct octeon_config *);
@@ -95,11 +84,6 @@ static void octfpa_init(struct octfpa_s
static uint64_t octfpa_iobdma(struct octfpa_softc *, int, int);
#endif
-#ifdef CNMAC_DEBUG
-void octfpa_intr_evcnt_attach(struct octfpa_softc *);
-void octfpa_intr_rml(void *);
-#endif
-
static struct octfpa_softc octfpa_softc;
/* ---- global functions */
@@ -122,94 +106,6 @@ octfpa_reset(void)
/* XXX */
}
-#ifdef CNMAC_DEBUG
-int octfpa_intr_rml_verbose;
-struct evcnt octfpa_intr_evcnt;
-
-static const struct octeon_evcnt_entry octfpa_intr_evcnt_entries[] = {
-#define _ENTRY(name, type, parent, descr) \
- OCTEON_EVCNT_ENTRY(struct octfpa_softc, name, type, parent, descr)
- _ENTRY(fpaq7perr, MISC, NULL, "fpa q7 pointer"),
- _ENTRY(fpaq7coff, MISC, NULL, "fpa q7 counter offset"),
- _ENTRY(fpaq7und, MISC, NULL, "fpa q7 underflow"),
- _ENTRY(fpaq6perr, MISC, NULL, "fpa q6 pointer"),
- _ENTRY(fpaq6coff, MISC, NULL, "fpa q6 counter offset"),
- _ENTRY(fpaq6und, MISC, NULL, "fpa q6 underflow"),
- _ENTRY(fpaq5perr, MISC, NULL, "fpa q5 pointer"),
- _ENTRY(fpaq5coff, MISC, NULL, "fpa q5 counter offset"),
-#undef _ENTRY
-};
-
-void
-octfpa_intr_evcnt_attach(struct octfpa_softc *sc)
-{
- OCTEON_EVCNT_ATTACH_EVCNTS(sc, octfpa_intr_evcnt_entries, "fpa0");
-}
-
-void
-octfpa_intr_rml(void *arg)
-{
- struct octfpa_softc *sc;
- uint64_t reg;
-
- octfpa_intr_evcnt.ev_count++;
- sc = &octfpa_softc;
- KASSERT(sc != NULL);
- reg = octfpa_int_summary();
- if (octfpa_intr_rml_verbose)
- printf("%s: FPA_INT_SUM=0x%016" PRIx64 "\n", __func__, reg);
- if (reg & FPA_INT_SUM_Q7_PERR)
- OCTEON_EVCNT_INC(sc, fpaq7perr);
- if (reg & FPA_INT_SUM_Q7_COFF)
- OCTEON_EVCNT_INC(sc, fpaq7coff);
- if (reg & FPA_INT_SUM_Q7_UND)
- OCTEON_EVCNT_INC(sc, fpaq7und);
- if (reg & FPA_INT_SUM_Q6_PERR)
- OCTEON_EVCNT_INC(sc, fpaq6perr);
- if (reg & FPA_INT_SUM_Q6_COFF)
- OCTEON_EVCNT_INC(sc, fpaq6coff);
- if (reg & FPA_INT_SUM_Q6_UND)
- OCTEON_EVCNT_INC(sc, fpaq6und);
- if (reg & FPA_INT_SUM_Q5_PERR)
- OCTEON_EVCNT_INC(sc, fpaq5perr);
- if (reg & FPA_INT_SUM_Q5_COFF)
- OCTEON_EVCNT_INC(sc, fpaq5coff);
-}
-
-void
-octfpa_int_enable(struct octfpa_softc *sc, int enable)
-{
- const uint64_t int_xxx =
- FPA_INT_ENB_Q7_PERR | FPA_INT_ENB_Q7_COFF | FPA_INT_ENB_Q7_UND |
- FPA_INT_ENB_Q6_PERR | FPA_INT_ENB_Q6_COFF | FPA_INT_ENB_Q6_UND |
- FPA_INT_ENB_Q5_PERR | FPA_INT_ENB_Q5_COFF | FPA_INT_ENB_Q5_UND |
- FPA_INT_ENB_Q4_PERR | FPA_INT_ENB_Q4_COFF | FPA_INT_ENB_Q4_UND |
- FPA_INT_ENB_Q3_PERR | FPA_INT_ENB_Q3_COFF | FPA_INT_ENB_Q3_UND |
- FPA_INT_ENB_Q2_PERR | FPA_INT_ENB_Q2_COFF | FPA_INT_ENB_Q2_UND |
- FPA_INT_ENB_Q1_PERR | FPA_INT_ENB_Q1_COFF | FPA_INT_ENB_Q1_UND |
- FPA_INT_ENB_Q0_PERR | FPA_INT_ENB_Q0_COFF | FPA_INT_ENB_Q0_UND |
- FPA_INT_ENB_FED1_DBE | FPA_INT_ENB_FED1_SBE |
- FPA_INT_ENB_FED0_DBE | FPA_INT_ENB_FED0_SBE;
-
- bus_space_write_8(sc->sc_regt, sc->sc_regh, FPA_INT_SUM_OFFSET,
- int_xxx);
- if (enable)
- bus_space_write_8(sc->sc_regt, sc->sc_regh, FPA_INT_ENB_OFFSET,
- int_xxx);
-}
-
-uint64_t
-octfpa_int_summary(void)
-{
- struct octfpa_softc *sc = &octfpa_softc;
- uint64_t summary;
-
- summary = bus_space_read_8(sc->sc_regt, sc->sc_regh, FPA_INT_SUM_OFFSET);
- bus_space_write_8(sc->sc_regt, sc->sc_regh, FPA_INT_SUM_OFFSET, summary);
- return summary;
-}
-#endif
-
int
octfpa_buf_init(int poolno, size_t size, size_t nelems, struct octfpa_buf **rfb)
{
@@ -315,10 +211,6 @@ octfpa_init(struct octfpa_softc *sc)
octfpa_init_bus(sc);
octfpa_init_regs(sc);
-#ifdef CNMAC_DEBUG
- octfpa_int_enable(sc, 1);
- octfpa_intr_evcnt_attach(sc);
-#endif
}
void
@@ -348,21 +240,6 @@ octfpa_init_regs(struct octfpa_softc *sc
bus_space_write_8(sc->sc_regt, sc->sc_regh, FPA_CTL_STATUS_OFFSET,
FPA_CTL_STATUS_ENB);
-
-/* XXX */
-#ifdef CNMAC_DEBUG
- bus_space_write_8(sc->sc_regt, sc->sc_regh, FPA_INT_ENB_OFFSET,
- FPA_INT_ENB_Q7_PERR | FPA_INT_ENB_Q7_COFF | FPA_INT_ENB_Q7_UND |
- FPA_INT_ENB_Q6_PERR | FPA_INT_ENB_Q6_COFF | FPA_INT_ENB_Q6_UND |
- FPA_INT_ENB_Q5_PERR | FPA_INT_ENB_Q5_COFF | FPA_INT_ENB_Q5_UND |
- FPA_INT_ENB_Q4_PERR | FPA_INT_ENB_Q4_COFF | FPA_INT_ENB_Q4_UND |
- FPA_INT_ENB_Q3_PERR | FPA_INT_ENB_Q3_COFF | FPA_INT_ENB_Q3_UND |
- FPA_INT_ENB_Q2_PERR | FPA_INT_ENB_Q2_COFF | FPA_INT_ENB_Q2_UND |
- FPA_INT_ENB_Q1_PERR | FPA_INT_ENB_Q1_COFF | FPA_INT_ENB_Q1_UND |
- FPA_INT_ENB_Q0_PERR | FPA_INT_ENB_Q0_COFF | FPA_INT_ENB_Q0_UND |
- FPA_INT_ENB_FED1_DBE | FPA_INT_ENB_FED1_SBE |
- FPA_INT_ENB_FED0_DBE | FPA_INT_ENB_FED0_SBE);
-#endif
}
int
@@ -406,113 +283,3 @@ octfpa_available_fpa_pool(int *available
return 0;
}
-
-#ifdef CNMAC_DEBUG
-void octfpa_dump_regs(void);
-void octfpa_dump_bufs(void);
-void octfpa_dump_buf(int);
-
-#define _ENTRY(x) { #x, x##_BITS, x##_OFFSET }
-
-struct octfpa_dump_reg_ {
- const char *name;
- const char *format;
- size_t offset;
-};
-
-static const struct octfpa_dump_reg_ octfpa_dump_regs_[] = {
- _ENTRY(FPA_INT_SUM),
- _ENTRY(FPA_INT_ENB),
- _ENTRY(FPA_CTL_STATUS),
- _ENTRY(FPA_QUE0_AVAILABLE),
- _ENTRY(FPA_QUE1_AVAILABLE),
- _ENTRY(FPA_QUE2_AVAILABLE),
- _ENTRY(FPA_QUE3_AVAILABLE),
- _ENTRY(FPA_QUE4_AVAILABLE),
- _ENTRY(FPA_QUE5_AVAILABLE),
- _ENTRY(FPA_QUE6_AVAILABLE),
- _ENTRY(FPA_QUE7_AVAILABLE),
- _ENTRY(FPA_WART_CTL),
- _ENTRY(FPA_WART_STATUS),
- _ENTRY(FPA_BIST_STATUS),
- _ENTRY(FPA_QUE0_PAGE_INDEX),
- _ENTRY(FPA_QUE1_PAGE_INDEX),
- _ENTRY(FPA_QUE2_PAGE_INDEX),
- _ENTRY(FPA_QUE3_PAGE_INDEX),
- _ENTRY(FPA_QUE4_PAGE_INDEX),
- _ENTRY(FPA_QUE5_PAGE_INDEX),
- _ENTRY(FPA_QUE6_PAGE_INDEX),
- _ENTRY(FPA_QUE7_PAGE_INDEX),
- _ENTRY(FPA_QUE_EXP),
- _ENTRY(FPA_QUE_ACT),
-};
-
-static const char *octfpa_dump_bufs_[8] = {
- [0] = "recv",
- [1] = "wq",
- [2] = "cmdbuf",
- [3] = "gbuf",
-};
-
-void
-octfpa_dump(void)
-{
- octfpa_dump_regs();
- octfpa_dump_bufs();
-}
-
-void
-octfpa_dump_regs(void)
-{
- struct octfpa_softc *sc = &octfpa_softc;
- const struct octfpa_dump_reg_ *reg;
- uint64_t tmp;
- char buf[512];
- int i;
-
- for (i = 0; i < (int)__arraycount(octfpa_dump_regs_); i++) {
- reg = &octfpa_dump_regs_[i];
- tmp = bus_space_read_8(sc->sc_regt, sc->sc_regh, reg->offset);
- if (reg->format == NULL) {
- snprintf(buf, sizeof(buf), "%16" PRIx64, tmp);
- } else {
- snprintb(buf, sizeof(buf), reg->format, tmp);
- }
- printf("\t%-24s: %s\n", reg->name, buf);
- }
-}
-
-/*
- * XXX assume pool 7 is unused!
- */
-void
-octfpa_dump_bufs(void)
-{
- int i;
-
- for (i = 0; i < 8; i++)
- octfpa_dump_buf(i);
-}
-
-void
-octfpa_dump_buf(int pool)
-{
- int i;
- uint64_t ptr;
- const char *name;
-
- name = octfpa_dump_bufs_[pool];
- if (name == NULL)
- return;
- printf("%s pool:\n", name);
- for (i = 0; (ptr = octfpa_load(pool)) != 0; i++) {
- printf("\t%016" PRIx64 "%s", ptr, ((i % 4) == 3) ? "\n" : "");
- octfpa_store(ptr, OCTEON_POOL_NO_DUMP, 0);
- }
- if (i % 4 != 3)
- printf("\n");
- printf("total = %d buffers\n", i);
- while ((ptr = octfpa_load(OCTEON_POOL_NO_DUMP)) != 0)
- octfpa_store(ptr, pool, 0);
-}
-#endif
Index: src/sys/arch/mips/cavium/dev/octeon_fpavar.h
diff -u src/sys/arch/mips/cavium/dev/octeon_fpavar.h:1.5 src/sys/arch/mips/cavium/dev/octeon_fpavar.h:1.6
--- src/sys/arch/mips/cavium/dev/octeon_fpavar.h:1.5 Thu Jun 18 13:52:08 2020
+++ src/sys/arch/mips/cavium/dev/octeon_fpavar.h Mon Jun 22 02:26:20 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: octeon_fpavar.h,v 1.5 2020/06/18 13:52:08 simonb Exp $ */
+/* $NetBSD: octeon_fpavar.h,v 1.6 2020/06/22 02:26:20 simonb Exp $ */
/*
* Copyright (c) 2007 Internet Initiative Japan, Inc.
@@ -54,10 +54,6 @@ void *octfpa_buf_get(struct octfpa_buf
uint64_t octfpa_query(int);
int octfpa_available_fpa_pool(int *available, int pool_no);
-#ifdef CNMAC_DEBUG
-void octfpa_dump(void);
-#endif
-
#define OCTEON_CACHE_LINE_SIZE (128)
/* Pool sizes in bytes, must be multiple of a cache line */
Index: src/sys/arch/mips/cavium/dev/octeon_gmxvar.h
diff -u src/sys/arch/mips/cavium/dev/octeon_gmxvar.h:1.5 src/sys/arch/mips/cavium/dev/octeon_gmxvar.h:1.6
--- src/sys/arch/mips/cavium/dev/octeon_gmxvar.h:1.5 Thu Jun 18 13:52:08 2020
+++ src/sys/arch/mips/cavium/dev/octeon_gmxvar.h Mon Jun 22 02:26:20 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: octeon_gmxvar.h,v 1.5 2020/06/18 13:52:08 simonb Exp $ */
+/* $NetBSD: octeon_gmxvar.h,v 1.6 2020/06/22 02:26:20 simonb Exp $ */
/*
* Copyright (c) 2007 Internet Initiative Japan, Inc.
@@ -71,32 +71,6 @@ struct octgmx_port_softc {
int sc_clk_tx_setting;
int sc_clk_rx_setting;
-
-#if defined(OCTEON_DEBUG) || defined(CNMAC_DEBUG)
-#if 0
- /* XXX */
- struct evcnt sc_ev_pausedrp;
- struct evcnt sc_ev_phydupx;
- struct evcnt sc_ev_physpd;
- struct evcnt sc_ev_phylink;
-#endif
- struct evcnt sc_ev_ifgerr;
- struct evcnt sc_ev_coldet;
- struct evcnt sc_ev_falerr;
- struct evcnt sc_ev_rcverr;
- struct evcnt sc_ev_rsverr;
- struct evcnt sc_ev_pckterr;
- struct evcnt sc_ev_ovrerr;
- struct evcnt sc_ev_niberr;
- struct evcnt sc_ev_skperr;
- struct evcnt sc_ev_lenerr;
- struct evcnt sc_ev_alnerr;
- struct evcnt sc_ev_fcserr;
- struct evcnt sc_ev_jabber;
- struct evcnt sc_ev_maxerr;
- struct evcnt sc_ev_carext;
- struct evcnt sc_ev_minerr;
-#endif
};
struct octgmx_softc {
@@ -110,14 +84,6 @@ struct octgmx_softc {
struct octgmx_port_softc
*sc_ports;
-
-#if defined(OCTEON_DEBUG) || defined(CNMAC_DEBUG)
- struct evcnt sc_ev_latecol;
- struct evcnt sc_ev_xsdef;
- struct evcnt sc_ev_xscol;
- struct evcnt sc_ev_undflw;
- struct evcnt sc_ev_pkonxa;
-#endif
};
#endif
Index: src/sys/arch/mips/cavium/dev/octeon_ipd.c
diff -u src/sys/arch/mips/cavium/dev/octeon_ipd.c:1.5 src/sys/arch/mips/cavium/dev/octeon_ipd.c:1.6
--- src/sys/arch/mips/cavium/dev/octeon_ipd.c:1.5 Fri Jun 19 02:23:43 2020
+++ src/sys/arch/mips/cavium/dev/octeon_ipd.c Mon Jun 22 02:26:20 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: octeon_ipd.c,v 1.5 2020/06/19 02:23:43 simonb Exp $ */
+/* $NetBSD: octeon_ipd.c,v 1.6 2020/06/22 02:26:20 simonb Exp $ */
/*
* Copyright (c) 2007 Internet Initiative Japan, Inc.
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: octeon_ipd.c,v 1.5 2020/06/19 02:23:43 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: octeon_ipd.c,v 1.6 2020/06/22 02:26:20 simonb Exp $");
#include "opt_octeon.h"
@@ -53,22 +53,6 @@ __KERNEL_RCSID(0, "$NetBSD: octeon_ipd.c
#define IP_OFFSET(data, word2) \
((uintptr_t)(data) + (uintptr_t)__SHIFTOUT(word2, PIP_WQE_WORD2_IP_OFFSET))
-#ifdef CNMAC_DEBUG
-void octipd_intr_evcnt_attach(struct octipd_softc *);
-void octipd_intr_rml(void *);
-int octipd_intr_drop(void *);
-
-void octipd_dump(void);
-
-static void *octipd_intr_drop_ih;
-struct evcnt octipd_intr_drop_evcnt =
- EVCNT_INITIALIZER(EVCNT_TYPE_INTR, NULL, "octeon",
- "ipd drop intr");
-EVCNT_ATTACH_STATIC(octipd_intr_drop_evcnt);
-
-struct octipd_softc *__octipd_softc[3/* XXX */];
-#endif
-
/* XXX */
void
octipd_init(struct octipd_attach_args *aa, struct octipd_softc **rsc)
@@ -91,15 +75,6 @@ octipd_init(struct octipd_attach_args *a
panic("can't map %s space", "ipd register");
*rsc = sc;
-
-#ifdef CNMAC_DEBUG
- octipd_int_enable(sc, 1);
- octipd_intr_evcnt_attach(sc);
- if (octipd_intr_drop_ih == NULL)
- octipd_intr_drop_ih = octeon_intr_establish(CIU_INT_IPD_DRP,
- IPL_NET, octipd_intr_drop, NULL);
- __octipd_softc[sc->sc_port] = sc;
-#endif /* CNMAC_DEBUG */
}
#define _IPD_RD8(sc, off) \
@@ -294,165 +269,3 @@ octipd_sub_port_fcs(struct octipd_softc
SET(sub_port_fcs, 1 << sc->sc_port);
_IPD_WR8(sc, IPD_SUB_PORT_FCS_OFFSET, sub_port_fcs);
}
-
-#ifdef CNMAC_DEBUG
-int octipd_intr_rml_verbose;
-struct evcnt octipd_intr_evcnt;
-
-static const struct octeon_evcnt_entry octipd_intr_evcnt_entries[] = {
-#define _ENTRY(name, type, parent, descr) \
- OCTEON_EVCNT_ENTRY(struct octipd_softc, name, type, parent, descr)
- _ENTRY(ipdbpsub, MISC, NULL, "ipd backpressure subtract"),
- _ENTRY(ipdprcpar3, MISC, NULL, "ipd parity error 127:96"),
- _ENTRY(ipdprcpar2, MISC, NULL, "ipd parity error 95:64"),
- _ENTRY(ipdprcpar1, MISC, NULL, "ipd parity error 63:32"),
- _ENTRY(ipdprcpar0, MISC, NULL, "ipd parity error 31:0"),
-#undef _ENTRY
-};
-
-void
-octipd_intr_evcnt_attach(struct octipd_softc *sc)
-{
- OCTEON_EVCNT_ATTACH_EVCNTS(sc, octipd_intr_evcnt_entries, "ipd0");
-}
-
-void
-octipd_intr_rml(void *arg)
-{
- int i;
-
- octipd_intr_evcnt.ev_count++;
- for (i = 0; i < 3/* XXX */; i++) {
- struct octipd_softc *sc;
- uint64_t reg;
-
- sc = __octipd_softc[i];
- KASSERT(sc != NULL);
- reg = octipd_int_summary(sc);
- if (octipd_intr_rml_verbose)
- printf("%s: IPD_INT_SUM=0x%016" PRIx64 "\n", __func__, reg);
- if (reg & IPD_INT_SUM_BP_SUB)
- OCTEON_EVCNT_INC(sc, ipdbpsub);
- if (reg & IPD_INT_SUM_PRC_PAR3)
- OCTEON_EVCNT_INC(sc, ipdprcpar3);
- if (reg & IPD_INT_SUM_PRC_PAR2)
- OCTEON_EVCNT_INC(sc, ipdprcpar2);
- if (reg & IPD_INT_SUM_PRC_PAR1)
- OCTEON_EVCNT_INC(sc, ipdprcpar1);
- if (reg & IPD_INT_SUM_PRC_PAR0)
- OCTEON_EVCNT_INC(sc, ipdprcpar0);
- }
-}
-
-void
-octipd_int_enable(struct octipd_softc *sc, int enable)
-{
- uint64_t ipd_int_xxx = 0;
-
- SET(ipd_int_xxx,
- IPD_INT_SUM_BP_SUB |
- IPD_INT_SUM_PRC_PAR3 |
- IPD_INT_SUM_PRC_PAR2 |
- IPD_INT_SUM_PRC_PAR1 |
- IPD_INT_SUM_PRC_PAR0);
- _IPD_WR8(sc, IPD_INT_SUM_OFFSET, ipd_int_xxx);
- _IPD_WR8(sc, IPD_INT_ENB_OFFSET, enable ? ipd_int_xxx : 0);
-}
-
-uint64_t
-octipd_int_summary(struct octipd_softc *sc)
-{
- uint64_t summary;
-
- summary = _IPD_RD8(sc, IPD_INT_SUM_OFFSET);
- _IPD_WR8(sc, IPD_INT_SUM_OFFSET, summary);
- return summary;
-}
-
-int
-octipd_intr_drop(void *arg)
-{
- octeon_write_csr(CIU_INT0_SUM0, CIU_INTX_SUM0_IPD_DRP);
- octipd_intr_drop_evcnt.ev_count++;
- return (1);
-}
-
-#define _ENTRY(x) { #x, x##_BITS, x##_OFFSET }
-
-struct octipd_dump_reg {
- const char *name;
- const char *format;
- size_t offset;
-};
-
-static const struct octipd_dump_reg octipd_dump_regs[] = {
- _ENTRY(IPD_1ST_MBUFF_SKIP),
- _ENTRY(IPD_NOT_1ST_MBUFF_SKIP),
- _ENTRY(IPD_PACKET_MBUFF_SIZE),
- _ENTRY(IPD_CTL_STATUS),
- _ENTRY(IPD_WQE_FPA_QUEUE),
- _ENTRY(IPD_PORT0_BP_PAGE_CNT),
- _ENTRY(IPD_PORT1_BP_PAGE_CNT),
- _ENTRY(IPD_PORT2_BP_PAGE_CNT),
- _ENTRY(IPD_PORT32_BP_PAGE_CNT),
- _ENTRY(IPD_SUB_PORT_BP_PAGE_CNT),
- _ENTRY(IPD_1ST_NEXT_PTR_BACK),
- _ENTRY(IPD_2ND_NEXT_PTR_BACK),
- _ENTRY(IPD_INT_ENB),
- _ENTRY(IPD_INT_SUM),
- _ENTRY(IPD_SUB_PORT_FCS),
- _ENTRY(IPD_QOS0_RED_MARKS),
- _ENTRY(IPD_QOS1_RED_MARKS),
- _ENTRY(IPD_QOS2_RED_MARKS),
- _ENTRY(IPD_QOS3_RED_MARKS),
- _ENTRY(IPD_QOS4_RED_MARKS),
- _ENTRY(IPD_QOS5_RED_MARKS),
- _ENTRY(IPD_QOS6_RED_MARKS),
- _ENTRY(IPD_QOS7_RED_MARKS),
- _ENTRY(IPD_PORT_BP_COUNTERS_PAIR0),
- _ENTRY(IPD_PORT_BP_COUNTERS_PAIR1),
- _ENTRY(IPD_PORT_BP_COUNTERS_PAIR2),
- _ENTRY(IPD_PORT_BP_COUNTERS_PAIR32),
- _ENTRY(IPD_RED_PORT_ENABLE),
- _ENTRY(IPD_RED_QUE0_PARAM),
- _ENTRY(IPD_RED_QUE1_PARAM),
- _ENTRY(IPD_RED_QUE2_PARAM),
- _ENTRY(IPD_RED_QUE3_PARAM),
- _ENTRY(IPD_RED_QUE4_PARAM),
- _ENTRY(IPD_RED_QUE5_PARAM),
- _ENTRY(IPD_RED_QUE6_PARAM),
- _ENTRY(IPD_RED_QUE7_PARAM),
- _ENTRY(IPD_PTR_COUNT),
- _ENTRY(IPD_BP_PRT_RED_END),
- _ENTRY(IPD_QUE0_FREE_PAGE_CNT),
- _ENTRY(IPD_CLK_COUNT),
- _ENTRY(IPD_PWP_PTR_FIFO_CTL),
- _ENTRY(IPD_PRC_HOLD_PTR_FIFO_CTL),
- _ENTRY(IPD_PRC_PORT_PTR_FIFO_CTL),
- _ENTRY(IPD_PKT_PTR_VALID),
- _ENTRY(IPD_WQE_PTR_VALID),
- _ENTRY(IPD_BIST_STATUS),
-};
-
-void
-octipd_dump(void)
-{
- struct octipd_softc *sc;
- const struct octipd_dump_reg *reg;
- uint64_t tmp;
- char buf[512];
- int i;
-
- sc = __octipd_softc[0];
- for (i = 0; i < (int)__arraycount(octipd_dump_regs); i++) {
- reg = &octipd_dump_regs[i];
- tmp = _IPD_RD8(sc, reg->offset);
- if (reg->format == NULL) {
- snprintf(buf, sizeof(buf), "%16" PRIx64, tmp);
- } else {
- snprintb(buf, sizeof(buf), reg->format, tmp);
- }
- printf("%-32s: %s\n", reg->name, buf);
- }
-}
-#endif /* CNMAC_DEBUG */
Index: src/sys/arch/mips/cavium/dev/octeon_pip.c
diff -u src/sys/arch/mips/cavium/dev/octeon_pip.c:1.5 src/sys/arch/mips/cavium/dev/octeon_pip.c:1.6
--- src/sys/arch/mips/cavium/dev/octeon_pip.c:1.5 Thu Jun 18 13:52:08 2020
+++ src/sys/arch/mips/cavium/dev/octeon_pip.c Mon Jun 22 02:26:20 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: octeon_pip.c,v 1.5 2020/06/18 13:52:08 simonb Exp $ */
+/* $NetBSD: octeon_pip.c,v 1.6 2020/06/22 02:26:20 simonb Exp $ */
/*
* Copyright (c) 2007 Internet Initiative Japan, Inc.
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: octeon_pip.c,v 1.5 2020/06/18 13:52:08 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: octeon_pip.c,v 1.6 2020/06/22 02:26:20 simonb Exp $");
#include "opt_octeon.h"
@@ -42,16 +42,6 @@ __KERNEL_RCSID(0, "$NetBSD: octeon_pip.c
#include <mips/cavium/dev/octeon_pipreg.h>
#include <mips/cavium/dev/octeon_pipvar.h>
-#ifdef CNMAC_DEBUG
-struct octpip_softc *__octpip_softc;
-
-void octpip_intr_evcnt_attach(struct octpip_softc *);
-void octpip_intr_rml(void *);
-
-void octpip_dump(void);
-void octpip_int_enable(struct octpip_softc *, int);
-#endif
-
/*
* register definitions (for debug and statics)
*/
@@ -88,27 +78,6 @@ static const struct octpip_dump_reg_ oct
_ENTRY_0_1_2_32 (PIP_STAT_INB_ERRS),
};
-#ifdef CNMAC_DEBUG
-static const struct octpip_dump_reg_ octpip_dump_regs_[] = {
- _ENTRY (PIP_BIST_STATUS),
- _ENTRY (PIP_INT_REG),
- _ENTRY (PIP_INT_EN),
- _ENTRY (PIP_STAT_CTL),
- _ENTRY (PIP_GBL_CTL),
- _ENTRY (PIP_GBL_CFG),
- _ENTRY (PIP_SOFT_RST),
- _ENTRY (PIP_IP_OFFSET),
- _ENTRY (PIP_TAG_SECRET),
- _ENTRY (PIP_TAG_MASK),
- _ENTRY_0_3 (PIP_DEC_IPSEC),
- _ENTRY (PIP_RAW_WORD),
- _ENTRY_0_7 (PIP_QOS_VLAN),
- _ENTRY_0_3 (PIP_QOS_WATCH),
- _ENTRY_0_1_2_32 (PIP_PRT_CFG),
- _ENTRY_0_1_2_32 (PIP_PRT_TAG),
-};
-#endif
-
#undef _ENTRY
#undef _ENTRY_0_3
#undef _ENTRY_0_7
@@ -137,13 +106,6 @@ octpip_init(struct octpip_attach_args *a
panic("can't map %s space", "pip register");
*rsc = sc;
-
-#ifdef CNMAC_DEBUG
- octpip_int_enable(sc, 1);
- octpip_intr_evcnt_attach(sc);
- __octpip_softc = sc;
- printf("PIP Code initialized.\n");
-#endif
}
#define _PIP_RD8(sc, off) \
@@ -247,152 +209,3 @@ octpip_stats(struct octpip_softc *sc, st
_PIP_WR8(sc, PIP_STAT_CTL_OFFSET, pip_stat_ctl);
}
-
-
-#ifdef CNMAC_DEBUG
-int octpip_intr_rml_verbose;
-struct evcnt octpip_intr_evcnt;
-
-static const struct octeon_evcnt_entry octpip_intr_evcnt_entries[] = {
-#define _ENTRY(name, type, parent, descr) \
- OCTEON_EVCNT_ENTRY(struct octpip_softc, name, type, parent, descr)
- _ENTRY(pipbeperr, MISC, NULL, "pip parity error backend"),
- _ENTRY(pipfeperr, MISC, NULL, "pip parity error frontend"),
- _ENTRY(pipskprunt, MISC, NULL, "pip skiper"),
- _ENTRY(pipbadtag, MISC, NULL, "pip bad tag"),
- _ENTRY(pipprtnxa, MISC, NULL, "pip nonexistent port"),
- _ENTRY(pippktdrp, MISC, NULL, "pip qos drop"),
-#undef _ENTRY
-};
-
-void
-octpip_intr_evcnt_attach(struct octpip_softc *sc)
-{
- OCTEON_EVCNT_ATTACH_EVCNTS(sc, octpip_intr_evcnt_entries, "pip0");
-}
-
-void
-octpip_intr_rml(void *arg)
-{
- struct octpip_softc *sc;
- uint64_t reg;
-
- octpip_intr_evcnt.ev_count++;
- sc = __octpip_softc;
- KASSERT(sc != NULL);
- reg = octpip_int_summary(sc);
- if (octpip_intr_rml_verbose)
- printf("%s: PIP_INT_REG=0x%016" PRIx64 "\n", __func__, reg);
- if (reg & PIP_INT_REG_BEPERR)
- OCTEON_EVCNT_INC(sc, pipbeperr);
- if (reg & PIP_INT_REG_FEPERR)
- OCTEON_EVCNT_INC(sc, pipfeperr);
- if (reg & PIP_INT_REG_SKPRUNT)
- OCTEON_EVCNT_INC(sc, pipskprunt);
- if (reg & PIP_INT_REG_BADTAG)
- OCTEON_EVCNT_INC(sc, pipbadtag);
- if (reg & PIP_INT_REG_PRTNXA)
- OCTEON_EVCNT_INC(sc, pipprtnxa);
- if (reg & PIP_INT_REG_PKTDRP)
- OCTEON_EVCNT_INC(sc, pippktdrp);
-}
-
-void octpip_dump_regs(void);
-void octpip_dump_stats(void);
-
-void
-octpip_dump(void)
-{
- octpip_dump_regs();
- octpip_dump_stats();
-}
-
-void
-octpip_dump_regs(void)
-{
- struct octpip_softc *sc = __octpip_softc;
- const struct octpip_dump_reg_ *reg;
- uint64_t tmp;
- char buf[512];
- int i;
-
- for (i = 0; i < (int)__arraycount(octpip_dump_regs_); i++) {
- reg = &octpip_dump_regs_[i];
- tmp = _PIP_RD8(sc, reg->offset);
- if (reg->format == NULL) {
- snprintf(buf, sizeof(buf), "%16" PRIx64, tmp);
- } else {
- snprintb(buf, sizeof(buf), reg->format, tmp);
- }
- printf("\t%-24s: %s\n", reg->name, buf);
- }
-}
-
-void
-octpip_dump_stats(void)
-{
- struct octpip_softc *sc = __octpip_softc;
- const struct octpip_dump_reg_ *reg;
- uint64_t tmp;
- char buf[512];
- int i;
- uint64_t pip_stat_ctl;
-
- pip_stat_ctl = _PIP_RD8(sc, PIP_STAT_CTL_OFFSET);
- _PIP_WR8(sc, PIP_STAT_CTL_OFFSET, pip_stat_ctl & ~PIP_STAT_CTL_RDCLR);
- for (i = 0; i < (int)__arraycount(octpip_dump_stats_); i++) {
- reg = &octpip_dump_stats_[i];
- tmp = _PIP_RD8(sc, reg->offset);
- if (reg->format == NULL) {
- snprintf(buf, sizeof(buf), "%16" PRIx64, tmp);
- } else {
- snprintb(buf, sizeof(buf), reg->format, tmp);
- }
- printf("\t%-24s: %s\n", reg->name, buf);
- }
- printf("\t%-24s:\n", "PIP_QOS_DIFF[0-63]");
- for (i = 0; i < 64; i++) {
- tmp = _PIP_RD8(sc, PIP_QOS_DIFF0_OFFSET + sizeof(uint64_t) * i);
- snprintf(buf, sizeof(buf), "%16" PRIx64, tmp);
- printf("%s\t%s%s",
- ((i % 4) == 0) ? "\t" : "",
- buf,
- ((i % 4) == 3) ? "\n" : "");
- }
- printf("\t%-24s:\n", "PIP_TAG_INC[0-63]");
- for (i = 0; i < 64; i++) {
- tmp = _PIP_RD8(sc, PIP_TAG_INC0_OFFSET + sizeof(uint64_t) * i);
- snprintf(buf, sizeof(buf), "%16" PRIx64, tmp);
- printf("%s\t%s%s",
- ((i % 4) == 0) ? "\t" : "",
- buf,
- ((i % 4) == 3) ? "\n" : "");
- }
- _PIP_WR8(sc, PIP_STAT_CTL_OFFSET, pip_stat_ctl);
-}
-
-void
-octpip_int_enable(struct octpip_softc *sc, int enable)
-{
- uint64_t pip_int_xxx = 0;
-
- SET(pip_int_xxx,
- PIP_INT_EN_BEPERR |
- PIP_INT_EN_FEPERR |
- PIP_INT_EN_SKPRUNT |
- PIP_INT_EN_BADTAG |
- PIP_INT_EN_PRTNXA |
- PIP_INT_EN_PKTDRP);
- _PIP_WR8(sc, PIP_INT_REG_OFFSET, pip_int_xxx);
- _PIP_WR8(sc, PIP_INT_EN_OFFSET, enable ? pip_int_xxx : 0);
-}
-uint64_t
-octpip_int_summary(struct octpip_softc *sc)
-{
- uint64_t summary;
-
- summary = _PIP_RD8(sc, PIP_INT_REG_OFFSET);
- _PIP_WR8(sc, PIP_INT_REG_OFFSET, summary);
- return summary;
-}
-#endif /* CNMAC_DEBUG */
Index: src/sys/arch/mips/cavium/dev/octeon_powvar.h
diff -u src/sys/arch/mips/cavium/dev/octeon_powvar.h:1.5 src/sys/arch/mips/cavium/dev/octeon_powvar.h:1.6
--- src/sys/arch/mips/cavium/dev/octeon_powvar.h:1.5 Thu Jun 18 13:52:08 2020
+++ src/sys/arch/mips/cavium/dev/octeon_powvar.h Mon Jun 22 02:26:20 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: octeon_powvar.h,v 1.5 2020/06/18 13:52:08 simonb Exp $ */
+/* $NetBSD: octeon_powvar.h,v 1.6 2020/06/22 02:26:20 simonb Exp $ */
/*
* Copyright (c) 2007 Internet Initiative Japan, Inc.
@@ -57,25 +57,6 @@ struct octpow_softc {
bus_space_handle_t sc_regh;
int sc_port;
int sc_int_pc_base;
-#ifdef CNMAC_DEBUG
- struct evcnt sc_ev_powecciopcsrpend;
- struct evcnt sc_ev_powecciopdbgpend;
- struct evcnt sc_ev_powecciopaddwork;
- struct evcnt sc_ev_powecciopillop;
- struct evcnt sc_ev_poweccioppend24;
- struct evcnt sc_ev_poweccioppend23;
- struct evcnt sc_ev_poweccioppend22;
- struct evcnt sc_ev_poweccioppend21;
- struct evcnt sc_ev_poweccioptagnull;
- struct evcnt sc_ev_poweccioptagnullnull;
- struct evcnt sc_ev_powecciopordatom;
- struct evcnt sc_ev_powecciopnull;
- struct evcnt sc_ev_powecciopnullnull;
- struct evcnt sc_ev_poweccrpe;
- struct evcnt sc_ev_poweccsyn;
- struct evcnt sc_ev_poweccdbe;
- struct evcnt sc_ev_poweccsbe;
-#endif
};
/* XXX */
Index: src/sys/arch/mips/cavium/dev/octeon_gmx.c
diff -u src/sys/arch/mips/cavium/dev/octeon_gmx.c:1.13 src/sys/arch/mips/cavium/dev/octeon_gmx.c:1.14
--- src/sys/arch/mips/cavium/dev/octeon_gmx.c:1.13 Fri Jun 19 02:23:43 2020
+++ src/sys/arch/mips/cavium/dev/octeon_gmx.c Mon Jun 22 02:26:20 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: octeon_gmx.c,v 1.13 2020/06/19 02:23:43 simonb Exp $ */
+/* $NetBSD: octeon_gmx.c,v 1.14 2020/06/22 02:26:20 simonb Exp $ */
/*
* Copyright (c) 2007 Internet Initiative Japan, Inc.
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: octeon_gmx.c,v 1.13 2020/06/19 02:23:43 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: octeon_gmx.c,v 1.14 2020/06/22 02:26:20 simonb Exp $");
#include "opt_octeon.h"
@@ -110,13 +110,6 @@ static int octgmx_rgmii_set_mac_addr(str
uint64_t);
static int octgmx_rgmii_set_filter(struct octgmx_port_softc *);
-#ifdef CNMAC_DEBUG
-void octgmx_intr_evcnt_attach(struct octgmx_softc *);
-void octgmx_dump(void);
-void octgmx_debug_reset(void);
-int octgmx_intr_drop(void *);
-#endif
-
static const int octgmx_rx_adr_cam_regs[] = {
GMX0_RX0_ADR_CAM0, GMX0_RX0_ADR_CAM1, GMX0_RX0_ADR_CAM2,
GMX0_RX0_ADR_CAM3, GMX0_RX0_ADR_CAM4, GMX0_RX0_ADR_CAM5
@@ -153,20 +146,6 @@ struct octgmx_port_ops *octgmx_port_ops[
[GMX_SPI42_PORT] = &octgmx_port_ops_spi42
};
-#ifdef CNMAC_DEBUG
-static void *octgmx_intr_drop_ih;
-struct evcnt octgmx_intr_drop_evcnt =
- EVCNT_INITIALIZER(EVCNT_TYPE_INTR, NULL, "octeon",
- "gmx drop intr");
-struct evcnt octgmx_intr_evcnt =
- EVCNT_INITIALIZER(EVCNT_TYPE_INTR, NULL, "octeon",
- "gmx intr");
-EVCNT_ATTACH_STATIC(octgmx_intr_drop_evcnt);
-EVCNT_ATTACH_STATIC(octgmx_intr_evcnt);
-
-struct octgmx_port_softc *__octgmx_port_softc[3/* XXX */];
-#endif
-
CFATTACH_DECL_NEW(octgmx, sizeof(struct octgmx_softc),
octgmx_match, octgmx_attach, NULL, NULL);
@@ -230,18 +209,7 @@ octgmx_attach(device_t parent, device_t
gmx_aa.ga_gmx_port = port_sc;
config_found_sm_loc(self, "octgmx", NULL, &gmx_aa,
octgmx_print, octgmx_submatch);
-
-#ifdef CNMAC_DEBUG
- __octgmx_port_softc[i] = port_sc;
-#endif
}
-
-#ifdef CNMAC_DEBUG
- octgmx_intr_evcnt_attach(sc);
- if (octgmx_intr_drop_ih == NULL)
- octgmx_intr_drop_ih = octeon_intr_establish(CIU_INT_GMX_DRP,
- IPL_NET, octgmx_intr_drop, NULL);
-#endif
}
static int
@@ -1172,454 +1140,3 @@ octgmx_setfilt_addrs(struct octgmx_port_
return 0;
}
#endif
-
-/* ---- interrupt */
-
-#ifdef CNMAC_DEBUG
-void octgmx_intr_rml_gmx0(void);
-
-int octgmx_intr_rml_verbose;
-
-/* tx - per unit (gmx0, gmx1, ...) */
-static const struct octeon_evcnt_entry octgmx_intr_evcnt_tx_entries[] = {
-#define _ENTRY(name, type, parent, descr) \
- OCTEON_EVCNT_ENTRY(struct octgmx_softc, name, type, parent, descr)
- _ENTRY(latecol, MISC, NULL, "tx late collision"),
- _ENTRY(xsdef, MISC, NULL, "tx excessive deferral"),
- _ENTRY(xscol, MISC, NULL, "tx excessive collision"),
- _ENTRY(undflw, MISC, NULL, "tx underflow"),
- _ENTRY(pkonxa, MISC, NULL, "tx port addr out-of-range")
-#undef _ENTRY
-};
-
-/* rx - per port (gmx0:0, gmx0:1, ...) */
-static const struct octeon_evcnt_entry octgmx_intr_evcnt_rx_entries[] = {
-#define _ENTRY(name, type, parent, descr) \
- OCTEON_EVCNT_ENTRY(struct octgmx_port_softc, name, type, parent, descr)
- _ENTRY(minerr, MISC, NULL, "rx min error"),
- _ENTRY(carext, MISC, NULL, "rx carrier error"),
- _ENTRY(maxerr, MISC, NULL, "rx max error"),
- _ENTRY(jabber, MISC, NULL, "rx jabber error"),
- _ENTRY(fcserr, MISC, NULL, "rx fcs error"),
- _ENTRY(alnerr, MISC, NULL, "rx align error"),
- _ENTRY(lenerr, MISC, NULL, "rx length error"),
- _ENTRY(rcverr, MISC, NULL, "rx receive error"),
- _ENTRY(skperr, MISC, NULL, "rx skip error"),
- _ENTRY(niberr, MISC, NULL, "rx nibble error"),
- _ENTRY(ovrerr, MISC, NULL, "rx overflow error"),
- _ENTRY(pckterr, MISC, NULL, "rx packet error"),
- _ENTRY(rsverr, MISC, NULL, "rx reserved opcode error"),
- _ENTRY(falerr, MISC, NULL, "rx false carrier error"),
- _ENTRY(coldet, MISC, NULL, "rx collision detect"),
- _ENTRY(ifgerr, MISC, NULL, "rx ifg error")
-#undef _ENTRY
-};
-
-void
-octgmx_intr_evcnt_attach(struct octgmx_softc *sc)
-{
- struct octgmx_port_softc *port_sc;
- int i;
-
- OCTEON_EVCNT_ATTACH_EVCNTS(sc, octgmx_intr_evcnt_tx_entries,
- device_xname(sc->sc_dev));
- for (i = 0; i < sc->sc_nports; i++) {
- port_sc = &sc->sc_ports[i];
- OCTEON_EVCNT_ATTACH_EVCNTS(port_sc, octgmx_intr_evcnt_rx_entries,
- device_xname(sc->sc_dev));
- }
-}
-
-void
-octgmx_intr_rml_gmx0(void)
-{
- struct octgmx_port_softc *sc = NULL/* XXX gcc */;
- int i;
- uint64_t reg = 0/* XXX gcc */;
-
- octgmx_intr_evcnt.ev_count++;
-
- sc = __octgmx_port_softc[0];
- if (sc == NULL)
- return;
-
- /* GMX0_RXn_INT_REG or GMX0_TXn_INT_REG */
- reg = octgmx_get_tx_int_reg(sc);
- if (octgmx_intr_rml_verbose && reg != 0)
- printf("%s: GMX_TX_INT_REG=0x%016" PRIx64 "\n", __func__, reg);
- if (reg & TX_INT_REG_LATE_COL)
- OCTEON_EVCNT_INC(sc->sc_port_gmx, latecol);
- if (reg & TX_INT_REG_XSDEF)
- OCTEON_EVCNT_INC(sc->sc_port_gmx, xsdef);
- if (reg & TX_INT_REG_XSCOL)
- OCTEON_EVCNT_INC(sc->sc_port_gmx, xscol);
- if (reg & TX_INT_REG_UNDFLW)
- OCTEON_EVCNT_INC(sc->sc_port_gmx, undflw);
- if (reg & TX_INT_REG_PKO_NXA)
- OCTEON_EVCNT_INC(sc->sc_port_gmx, pkonxa);
-
- for (i = 0; i < GMX_PORT_NUNITS; i++) {
- sc = __octgmx_port_softc[i];
- if (sc == NULL)
- continue;
- reg = octgmx_get_rx_int_reg(sc);
- if (octgmx_intr_rml_verbose)
- printf("%s: GMX_RX_INT_REG=0x%016" PRIx64 "\n", __func__, reg);
- if (reg & RXN_INT_REG_MINERR)
- OCTEON_EVCNT_INC(sc, minerr);
- if (reg & RXN_INT_REG_CAREXT)
- OCTEON_EVCNT_INC(sc, carext);
- if (reg & RXN_INT_REG_JABBER)
- OCTEON_EVCNT_INC(sc, jabber);
- if (reg & RXN_INT_REG_FCSERR)
- OCTEON_EVCNT_INC(sc, fcserr);
- if (reg & RXN_INT_REG_ALNERR)
- OCTEON_EVCNT_INC(sc, alnerr);
- if (reg & RXN_INT_REG_LENERR)
- OCTEON_EVCNT_INC(sc, lenerr);
- if (reg & RXN_INT_REG_RCVERR)
- OCTEON_EVCNT_INC(sc, rcverr);
- if (reg & RXN_INT_REG_SKPERR)
- OCTEON_EVCNT_INC(sc, skperr);
- if (reg & RXN_INT_REG_NIBERR)
- OCTEON_EVCNT_INC(sc, niberr);
- if (reg & RXN_INT_REG_OVRERR)
- OCTEON_EVCNT_INC(sc, ovrerr);
- if (reg & RXN_INT_REG_PCTERR)
- OCTEON_EVCNT_INC(sc, pckterr);
- if (reg & RXN_INT_REG_RSVERR)
- OCTEON_EVCNT_INC(sc, rsverr);
- if (reg & RXN_INT_REG_FALERR)
- OCTEON_EVCNT_INC(sc, falerr);
- if (reg & RXN_INT_REG_COLDET)
- OCTEON_EVCNT_INC(sc, coldet);
- if (reg & RXN_INT_REG_IFGERR)
- OCTEON_EVCNT_INC(sc, ifgerr);
- }
-}
-
-#ifdef notyet
-void
-octgmx_intr_rml_gmx1(void)
-{
- uint64_t reg = 0/* XXX gcc */;
-
- /* GMX1_RXn_INT_REG or GMX1_TXn_INT_REG */
-}
-#endif
-
-int
-octgmx_intr_drop(void *arg)
-{
- octeon_write_csr(CIU_INT0_SUM0, CIU_INTX_SUM0_GMX_DRP);
- octgmx_intr_drop_evcnt.ev_count++;
- return (1);
-}
-
-uint64_t
-octgmx_get_rx_int_reg(struct octgmx_port_softc *sc)
-{
- uint64_t reg;
- uint64_t rx_int_reg = 0;
-
- reg = _GMX_PORT_RD8(sc, GMX0_RX0_INT_REG);
- /* clear */
- SET(rx_int_reg, 0 |
- RXN_INT_REG_PHY_DUPX |
- RXN_INT_REG_PHY_SPD |
- RXN_INT_REG_PHY_LINK |
- RXN_INT_REG_IFGERR |
- RXN_INT_REG_COLDET |
- RXN_INT_REG_FALERR |
- RXN_INT_REG_RSVERR |
- RXN_INT_REG_PCTERR |
- RXN_INT_REG_OVRERR |
- RXN_INT_REG_NIBERR |
- RXN_INT_REG_SKPERR |
- RXN_INT_REG_RCVERR |
- RXN_INT_REG_LENERR |
- RXN_INT_REG_ALNERR |
- RXN_INT_REG_FCSERR |
- RXN_INT_REG_JABBER |
- RXN_INT_REG_MAXERR |
- RXN_INT_REG_CAREXT |
- RXN_INT_REG_MINERR);
- _GMX_PORT_WR8(sc, GMX0_RX0_INT_REG, rx_int_reg);
-
- return reg;
-}
-
-uint64_t
-octgmx_get_tx_int_reg(struct octgmx_port_softc *sc)
-{
- uint64_t reg;
- uint64_t tx_int_reg = 0;
-
- reg = _GMX_PORT_RD8(sc, GMX0_TX_INT_REG);
- /* clear */
- SET(tx_int_reg, 0 |
- TX_INT_REG_LATE_COL |
- TX_INT_REG_XSDEF |
- TX_INT_REG_XSCOL |
- TX_INT_REG_UNDFLW |
- TX_INT_REG_PKO_NXA);
- _GMX_PORT_WR8(sc, GMX0_TX_INT_REG, tx_int_reg);
-
- return reg;
-}
-#endif /* CNMAC_DEBUG */
-
-/* ---- debug */
-
-#ifdef CNMAC_DEBUG
-#define _ENTRY(x) { #x, x##_BITS, x }
-
-struct octgmx_dump_reg_ {
- const char *name;
- const char *format;
- size_t offset;
-};
-
-static const struct octgmx_dump_reg_ octgmx_dump_regs_[] = {
- _ENTRY(GMX0_SMAC0),
- _ENTRY(GMX0_BIST0),
- _ENTRY(GMX0_RX_PRTS),
- _ENTRY(GMX0_RX_BP_DROP0),
- _ENTRY(GMX0_RX_BP_DROP1),
- _ENTRY(GMX0_RX_BP_DROP2),
- _ENTRY(GMX0_RX_BP_ON0),
- _ENTRY(GMX0_RX_BP_ON1),
- _ENTRY(GMX0_RX_BP_ON2),
- _ENTRY(GMX0_RX_BP_OFF0),
- _ENTRY(GMX0_RX_BP_OFF1),
- _ENTRY(GMX0_RX_BP_OFF2),
- _ENTRY(GMX0_TX_PRTS),
- _ENTRY(GMX0_TX_IFG),
- _ENTRY(GMX0_TX_JAM),
- _ENTRY(GMX0_TX_COL_ATTEMPT),
- _ENTRY(GMX0_TX_PAUSE_PKT_DMAC),
- _ENTRY(GMX0_TX_PAUSE_PKT_TYPE),
- _ENTRY(GMX0_TX_OVR_BP),
- _ENTRY(GMX0_TX_BP),
- _ENTRY(GMX0_TX_CORRUPT),
- _ENTRY(GMX0_RX_PRT_INFO),
- _ENTRY(GMX0_TX_LFSR),
- _ENTRY(GMX0_TX_INT_REG),
- _ENTRY(GMX0_TX_INT_EN),
- _ENTRY(GMX0_NXA_ADR),
- _ENTRY(GMX0_BAD_REG),
- _ENTRY(GMX0_STAT_BP),
- _ENTRY(GMX0_TX_CLK_MSK0),
- _ENTRY(GMX0_TX_CLK_MSK1),
- _ENTRY(GMX0_RX_TX_STATUS),
- _ENTRY(GMX0_INF_MODE),
-};
-
-static const struct octgmx_dump_reg_ octgmx_dump_port_regs_[] = {
- _ENTRY(GMX0_RX0_INT_REG),
- _ENTRY(GMX0_RX0_INT_EN),
- _ENTRY(GMX0_PRT0_CFG),
- _ENTRY(GMX0_RX0_FRM_CTL),
- _ENTRY(GMX0_RX0_FRM_CHK),
- _ENTRY(GMX0_RX0_FRM_MIN),
- _ENTRY(GMX0_RX0_FRM_MAX),
- _ENTRY(GMX0_RX0_JABBER),
- _ENTRY(GMX0_RX0_DECISION),
- _ENTRY(GMX0_RX0_UDD_SKP),
- _ENTRY(GMX0_RX0_STATS_CTL),
- _ENTRY(GMX0_RX0_IFG),
- _ENTRY(GMX0_RX0_RX_INBND),
- _ENTRY(GMX0_RX0_ADR_CTL),
- _ENTRY(GMX0_RX0_ADR_CAM_EN),
- _ENTRY(GMX0_RX0_ADR_CAM0),
- _ENTRY(GMX0_RX0_ADR_CAM1),
- _ENTRY(GMX0_RX0_ADR_CAM2),
- _ENTRY(GMX0_RX0_ADR_CAM3),
- _ENTRY(GMX0_RX0_ADR_CAM4),
- _ENTRY(GMX0_RX0_ADR_CAM5),
- _ENTRY(GMX0_TX0_CLK),
- _ENTRY(GMX0_TX0_THRESH),
- _ENTRY(GMX0_TX0_APPEND),
- _ENTRY(GMX0_TX0_SLOT),
- _ENTRY(GMX0_TX0_BURST),
- _ENTRY(GMX0_TX0_PAUSE_PKT_TIME),
- _ENTRY(GMX0_TX0_MIN_PKT),
- _ENTRY(GMX0_TX0_PAUSE_PKT_INTERVAL),
- _ENTRY(GMX0_TX0_SOFT_PAUSE),
- _ENTRY(GMX0_TX0_PAUSE_TOGO),
- _ENTRY(GMX0_TX0_PAUSE_ZERO),
- _ENTRY(GMX0_TX0_STATS_CTL),
- _ENTRY(GMX0_TX0_CTL),
-};
-
-static const struct octgmx_dump_reg_ octgmx_dump_port_stats_[] = {
- _ENTRY(GMX0_RX0_STATS_PKTS),
- _ENTRY(GMX0_RX0_STATS_OCTS),
- _ENTRY(GMX0_RX0_STATS_PKTS_CTL),
- _ENTRY(GMX0_RX0_STATS_OCTS_CTL),
- _ENTRY(GMX0_RX0_STATS_PKTS_DMAC),
- _ENTRY(GMX0_RX0_STATS_OCTS_DMAC),
- _ENTRY(GMX0_RX0_STATS_PKTS_DRP),
- _ENTRY(GMX0_RX0_STATS_OCTS_DRP),
- _ENTRY(GMX0_RX0_STATS_PKTS_BAD),
- _ENTRY(GMX0_TX0_STAT0),
- _ENTRY(GMX0_TX0_STAT1),
- _ENTRY(GMX0_TX0_STAT2),
- _ENTRY(GMX0_TX0_STAT3),
- _ENTRY(GMX0_TX0_STAT4),
- _ENTRY(GMX0_TX0_STAT5),
- _ENTRY(GMX0_TX0_STAT6),
- _ENTRY(GMX0_TX0_STAT7),
- _ENTRY(GMX0_TX0_STAT8),
- _ENTRY(GMX0_TX0_STAT9),
-};
-
-void octgmx_dump_common(void);
-void octgmx_dump_port0(void);
-void octgmx_dump_port1(void);
-void octgmx_dump_port2(void);
-void octgmx_dump_port0_regs(void);
-void octgmx_dump_port1_regs(void);
-void octgmx_dump_port2_regs(void);
-void octgmx_dump_port0_stats(void);
-void octgmx_dump_port1_stats(void);
-void octgmx_dump_port2_stats(void);
-void octgmx_dump_port_regs(int);
-void octgmx_dump_port_stats(int);
-void octgmx_dump_common_x(int, const struct octgmx_dump_reg_ *, size_t);
-void octgmx_dump_port_x(int, const struct octgmx_dump_reg_ *, size_t);
-void octgmx_dump_x(int, const struct octgmx_dump_reg_ *, size_t, size_t, int);
-void octgmx_dump_x_index(char *, size_t, int);
-
-void
-octgmx_dump(void)
-{
- octgmx_dump_common();
- octgmx_dump_port0();
- octgmx_dump_port1();
- octgmx_dump_port2();
-}
-
-void
-octgmx_dump_common(void)
-{
- octgmx_dump_common_x(0, octgmx_dump_regs_,
- __arraycount(octgmx_dump_regs_));
-}
-
-void
-octgmx_dump_port0(void)
-{
- octgmx_dump_port_regs(0);
- octgmx_dump_port_stats(0);
-}
-
-void
-octgmx_dump_port1(void)
-{
- octgmx_dump_port_regs(1);
- octgmx_dump_port_stats(1);
-}
-
-void
-octgmx_dump_port2(void)
-{
- octgmx_dump_port_regs(2);
- octgmx_dump_port_stats(2);
-}
-
-void
-octgmx_dump_port_regs(int portno)
-{
- octgmx_dump_port_x(portno, octgmx_dump_port_regs_,
- __arraycount(octgmx_dump_port_regs_));
-}
-
-void
-octgmx_dump_port_stats(int portno)
-{
- struct octgmx_port_softc *sc = __octgmx_port_softc[0];
- uint64_t rx_stats_ctl;
- uint64_t tx_stats_ctl;
-
- rx_stats_ctl = _GMX_RD8(sc, GMX0_BASE_PORT_SIZE * portno + GMX0_RX0_STATS_CTL);
- _GMX_WR8(sc, GMX0_BASE_PORT_SIZE * portno + GMX0_RX0_STATS_CTL,
- rx_stats_ctl & ~RXN_STATS_CTL_RD_CLR);
- tx_stats_ctl = _GMX_RD8(sc, GMX0_BASE_PORT_SIZE * portno + GMX0_TX0_STATS_CTL);
- _GMX_WR8(sc, GMX0_BASE_PORT_SIZE * portno + GMX0_TX0_STATS_CTL,
- tx_stats_ctl & ~TXN_STATS_CTL_RD_CLR);
- octgmx_dump_port_x(portno, octgmx_dump_port_stats_,
- __arraycount(octgmx_dump_port_stats_));
- _GMX_WR8(sc, GMX0_BASE_PORT_SIZE * portno + GMX0_RX0_STATS_CTL, rx_stats_ctl);
- _GMX_WR8(sc, GMX0_BASE_PORT_SIZE * portno + GMX0_TX0_STATS_CTL, tx_stats_ctl);
-}
-
-void
-octgmx_dump_common_x(int portno, const struct octgmx_dump_reg_ *regs, size_t size)
-{
- octgmx_dump_x(portno, regs, size, 0, 0);
-}
-
-void
-octgmx_dump_port_x(int portno, const struct octgmx_dump_reg_ *regs, size_t size)
-{
- octgmx_dump_x(portno, regs, size, GMX0_BASE_PORT_SIZE * portno, 1);
-}
-
-void
-octgmx_dump_x(int portno, const struct octgmx_dump_reg_ *regs, size_t size, size_t base, int index)
-{
- struct octgmx_port_softc *sc = __octgmx_port_softc[0];
- const struct octgmx_dump_reg_ *reg;
- uint64_t tmp;
- char name[64];
- char buf[512];
- int i;
-
- for (i = 0; i < (int)size; i++) {
- reg = ®s[i];
- tmp = _GMX_RD8(sc, base + reg->offset);
-
- if (reg->format == NULL)
- snprintf(buf, sizeof(buf), "%016" PRIx64, tmp);
- else
- snprintb(buf, sizeof(buf), reg->format, tmp);
-
- snprintf(name, sizeof(name), "%s", reg->name);
- if (index > 0)
- octgmx_dump_x_index(name, sizeof(name), portno);
-
- printf("\t%-24s: %s\n", name, buf);
- }
-}
-
-void
-octgmx_dump_x_index(char *buf, size_t len, int index)
-{
- static const char *patterns[] = { "_TX0_", "_RX0_", "_PRT0_" };
- int i;
-
- for (i = 0; i < (int)__arraycount(patterns); i++) {
- char *p;
-
- p = strstr(buf, patterns[i]);
- if (p == NULL)
- continue;
- p = strchr(p, '0');
- KASSERT(p != NULL);
- *p = '0' + index;
- return;
- }
-}
-
-void
-octgmx_debug_reset(void)
-{
- int i;
-
- for (i = 0; i < 3; i++)
- octgmx_link_enable(__octgmx_port_softc[i], 0);
- for (i = 0; i < 3; i++)
- octgmx_link_enable(__octgmx_port_softc[i], 1);
-}
-#endif
Index: src/sys/arch/mips/cavium/dev/octeon_pci.c
diff -u src/sys/arch/mips/cavium/dev/octeon_pci.c:1.4 src/sys/arch/mips/cavium/dev/octeon_pci.c:1.5
--- src/sys/arch/mips/cavium/dev/octeon_pci.c:1.4 Fri Jun 19 02:23:43 2020
+++ src/sys/arch/mips/cavium/dev/octeon_pci.c Mon Jun 22 02:26:20 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: octeon_pci.c,v 1.4 2020/06/19 02:23:43 simonb Exp $ */
+/* $NetBSD: octeon_pci.c,v 1.5 2020/06/22 02:26:20 simonb Exp $ */
/*
* Copyright (c) 2007, 2008 Internet Initiative Japan, Inc.
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: octeon_pci.c,v 1.4 2020/06/19 02:23:43 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: octeon_pci.c,v 1.5 2020/06/22 02:26:20 simonb Exp $");
#include "opt_octeon.h"
@@ -50,11 +50,6 @@ __KERNEL_RCSID(0, "$NetBSD: octeon_pci.c
void octpci_bootstrap(struct octeon_config *);
static void octpci_init(void);
-#ifdef CNMAC_DEBUG
-static int octpci_intr_rml(void *);
-static void *octpci_intr_rml_ih;
-#endif
-
void
octpci_bootstrap(struct octeon_config *mcp)
{
@@ -64,50 +59,6 @@ octpci_bootstrap(struct octeon_config *m
static void
octpci_init(void)
{
-#ifdef CNMAC_DEBUG
- octpci_intr_rml_ih = octeon_intr_establish( CIU_INT_RML, IPL_NET,
- octpci_intr_rml, NULL);
-#endif
-}
-
-#ifdef CNMAC_DEBUG
-int octpci_intr_rml_verbose;
-
-void octgmx_intr_rml_gmx0(void *);
-void octgmx_intr_rml_gmx1(void *);
-void octasx_intr_rml(void *);
-void octipd_intr_rml(void *);
-void octpip_intr_rml(void *);
-void octpow_intr_rml(void *);
-void octpko_intr_rml(void *);
-void octfpa_intr_rml(void *);
-
-static int
-octpci_intr_rml(void *arg)
-{
- uint64_t block;
- block = octeon_read_csr(NPI_RSL_INT_BLOCKS);
- if (octpci_intr_rml_verbose)
- printf("%s: block=0x%016" PRIx64 "\n", __func__, block);
- if (ISSET(block, NPI_RSL_INT_BLOCKS_GMX0))
- octgmx_intr_rml_gmx0(arg);
-#ifdef notyet
- if (ISSET(block, NPI_RSL_INT_BLOCKS_GMX1))
- octgmx_intr_rml_gmx1(arg);
-#endif
- if (ISSET(block, NPI_RSL_INT_BLOCKS_ASX0))
- octasx_intr_rml(arg);
- if (ISSET(block, NPI_RSL_INT_BLOCKS_IPD))
- octipd_intr_rml(arg);
- if (ISSET(block, NPI_RSL_INT_BLOCKS_PIP))
- octpip_intr_rml(arg);
- if (ISSET(block, NPI_RSL_INT_BLOCKS_POW))
- octpow_intr_rml(arg);
- if (ISSET(block, NPI_RSL_INT_BLOCKS_PKO))
- octpko_intr_rml(arg);
- if (ISSET(block, NPI_RSL_INT_BLOCKS_FPA))
- octfpa_intr_rml(arg);
- return 1;
+ /* XXX remove this? */
}
-#endif
Index: src/sys/arch/mips/cavium/dev/octeon_pkovar.h
diff -u src/sys/arch/mips/cavium/dev/octeon_pkovar.h:1.4 src/sys/arch/mips/cavium/dev/octeon_pkovar.h:1.5
--- src/sys/arch/mips/cavium/dev/octeon_pkovar.h:1.4 Thu Jun 18 13:52:08 2020
+++ src/sys/arch/mips/cavium/dev/octeon_pkovar.h Mon Jun 22 02:26:20 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: octeon_pkovar.h,v 1.4 2020/06/18 13:52:08 simonb Exp $ */
+/* $NetBSD: octeon_pkovar.h,v 1.5 2020/06/22 02:26:20 simonb Exp $ */
/*
* Copyright (c) 2007 Internet Initiative Japan, Inc.
@@ -61,11 +61,6 @@ struct octpko_softc {
*sc_cmdptr;
int sc_cmd_buf_pool;
size_t sc_cmd_buf_size;
-
-#ifdef CNMAC_DEBUG
- struct evcnt sc_ev_pkoerrdbell;
- struct evcnt sc_ev_pkoerrparity;
-#endif
};
/* XXX */
Index: src/sys/arch/mips/cavium/dev/octeon_pow.c
diff -u src/sys/arch/mips/cavium/dev/octeon_pow.c:1.8 src/sys/arch/mips/cavium/dev/octeon_pow.c:1.9
--- src/sys/arch/mips/cavium/dev/octeon_pow.c:1.8 Fri Jun 19 02:23:43 2020
+++ src/sys/arch/mips/cavium/dev/octeon_pow.c Mon Jun 22 02:26:20 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: octeon_pow.c,v 1.8 2020/06/19 02:23:43 simonb Exp $ */
+/* $NetBSD: octeon_pow.c,v 1.9 2020/06/22 02:26:20 simonb Exp $ */
/*
* Copyright (c) 2007 Internet Initiative Japan, Inc.
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: octeon_pow.c,v 1.8 2020/06/19 02:23:43 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: octeon_pow.c,v 1.9 2020/06/22 02:26:20 simonb Exp $");
#include "opt_octeon.h" /* CNMAC_DEBUG */
@@ -61,33 +61,10 @@ struct octpow_intr_handle {
int pi_group;
void (*pi_cb)(void *, uint64_t *);
void *pi_data;
-
-#ifdef CNMAC_DEBUG
-#define _EV_PER_N 32 /* XXX */
-#define _EV_IVAL_N 32 /* XXX */
- int pi_first;
- struct timeval pi_last;
- struct evcnt pi_ev_per[_EV_PER_N];
- struct evcnt pi_ev_ival[_EV_IVAL_N];
- struct evcnt pi_ev_stray_tc;
- struct evcnt pi_ev_stray_ds;
- struct evcnt pi_ev_stray_iq;
-#endif
};
void octpow_bootstrap(struct octeon_config *);
-#ifdef CNMAC_DEBUG
-void octpow_intr_evcnt_attach(struct octpow_softc *);
-void octpow_intr_rml(void *);
-
-static void octpow_intr_debug_init(
- struct octpow_intr_handle *, int);
-static inline void octpow_intr_work_debug_ival(struct octpow_softc *,
- struct octpow_intr_handle *);
-static inline void octpow_intr_work_debug_per(struct octpow_softc *,
- struct octpow_intr_handle *, int);
-#endif
static void octpow_init(struct octpow_softc *);
static void octpow_init_regs(struct octpow_softc *);
static inline int octpow_tag_sw_poll(void) __unused;
@@ -99,17 +76,9 @@ static inline void octpow_intr_work(stru
struct octpow_intr_handle *, int);
static int octpow_intr(void *);
-#ifdef CNMAC_DEBUG
-void octpow_dump(void);
-#endif
-
/* XXX */
struct octpow_softc octpow_softc;
-#ifdef CNMAC_DEBUG
-struct octpow_softc *__octpow_softc;
-#endif
-
/*
* XXX: parameter tuning is needed: see files.octeon
*/
@@ -260,11 +229,6 @@ octpow_bootstrap(struct octeon_config *m
/* XXX */
octpow_init(sc);
-
-#ifdef CNMAC_DEBUG
- __octpow_softc = sc;
-#endif
-
}
static inline void
@@ -323,78 +287,9 @@ octpow_intr_establish(int group, int lev
pow_ih->pi_cb = cb;
pow_ih->pi_data = data;
-#ifdef CNMAC_DEBUG
- octpow_intr_debug_init(pow_ih, group);
-#endif
return pow_ih;
}
-#ifdef CNMAC_DEBUG
-#define _NAMELEN 8
-#define _DESCRLEN 40
-
-static void
-octpow_intr_debug_init(struct octpow_intr_handle *pow_ih, int group)
-{
- pow_ih->pi_first = 1;
- char *name, *descr;
- int i;
-
- name = malloc(_NAMELEN +
- _DESCRLEN * __arraycount(pow_ih->pi_ev_per) +
- _DESCRLEN * __arraycount(pow_ih->pi_ev_ival),
- M_DEVBUF, M_WAITOK);
- descr = name + _NAMELEN;
- snprintf(name, _NAMELEN, "pow%d", group);
- for (i = 0; i < (int)__arraycount(pow_ih->pi_ev_per); i++) {
- int n = 1 << (i - 1);
-
- (void)snprintf(descr, _DESCRLEN,
- "# of works per intr (%d-%d)",
- (i == 0) ? 0 : n,
- (i == 0) ? 0 : ((n << 1) - 1));
- evcnt_attach_dynamic(&pow_ih->pi_ev_per[i],
- EVCNT_TYPE_MISC, NULL, name, descr);
- descr += _DESCRLEN;
- }
- for (i = 0; i < (int)__arraycount(pow_ih->pi_ev_ival); i++) {
- int n = 1 << (i - 1);
- int p, q;
- char unit;
-
- p = n;
- q = (n << 1) - 1;
- unit = 'u';
- /*
- * 0 is exceptional
- */
- if (i == 0)
- p = q = 0;
- /*
- * count 1024usec as 1msec
- *
- * XXX this is not exact
- */
- if ((i - 1) >= 10) {
- p /= 1000;
- q /= 1000;
- unit = 'm';
- }
- (void)snprintf(descr, _DESCRLEN, "intr interval (%d-%d%csec)",
- p, q, unit);
- evcnt_attach_dynamic(&pow_ih->pi_ev_ival[i],
- EVCNT_TYPE_MISC, NULL, name, descr);
- descr += _DESCRLEN;
- }
- evcnt_attach_dynamic(&pow_ih->pi_ev_stray_tc,
- EVCNT_TYPE_MISC, NULL, name, "stray intr (TC)");
- evcnt_attach_dynamic(&pow_ih->pi_ev_stray_ds,
- EVCNT_TYPE_MISC, NULL, name, "stray intr (DS)");
- evcnt_attach_dynamic(&pow_ih->pi_ev_stray_iq,
- EVCNT_TYPE_MISC, NULL, name, "stray intr (IQ)");
-}
-#endif
-
void
octpow_init(struct octpow_softc *sc)
{
@@ -402,10 +297,6 @@ octpow_init(struct octpow_softc *sc)
sc->sc_int_pc_base = 10000;
octpow_config_int_pc(sc, sc->sc_int_pc_base);
-
-#ifdef CNMAC_DEBUG
- octpow_error_int_enable(sc, 1);
-#endif
}
void
@@ -417,82 +308,12 @@ octpow_init_regs(struct octpow_softc *sc
&sc->sc_regh);
if (status != 0)
panic("can't map %s space", "pow register");
-
-#ifdef CNMAC_DEBUG
- _POW_WR8(sc, POW_ECC_ERR_OFFSET,
- POW_ECC_ERR_IOP_IE | POW_ECC_ERR_RPE_IE |
- POW_ECC_ERR_DBE_IE | POW_ECC_ERR_SBE_IE);
-#endif
}
/* -------------------------------------------------------------------------- */
/* ---- interrupt handling */
-#ifdef CNMAC_DEBUG
-static inline void
-octpow_intr_work_debug_ival(struct octpow_softc *sc,
- struct octpow_intr_handle *pow_ih)
-{
- struct timeval now;
- struct timeval ival;
- int n;
-
- microtime(&now);
- if (__predict_false(pow_ih->pi_first == 1)) {
- pow_ih->pi_first = 0;
- goto stat_done;
- }
- timersub(&now, &pow_ih->pi_last, &ival);
- if (ival.tv_sec != 0)
- goto stat_done; /* XXX */
- n = ffs64((uint64_t)ival.tv_usec);
- if (n > (int)__arraycount(pow_ih->pi_ev_ival) - 1)
- n = (int)__arraycount(pow_ih->pi_ev_ival) - 1;
- pow_ih->pi_ev_ival[n].ev_count++;
-
-stat_done:
- pow_ih->pi_last = now; /* struct copy */
-}
-
-static inline void
-octpow_intr_work_debug_per(struct octpow_softc *sc,
- struct octpow_intr_handle *pow_ih, int count)
-{
- int n;
-
- n = ffs64(count);
- if (n > (int)__arraycount(pow_ih->pi_ev_per) - 1)
- n = (int)__arraycount(pow_ih->pi_ev_per) - 1;
- pow_ih->pi_ev_per[n].ev_count++;
-#if 1
- if (count == 0) {
- uint64_t wq_int_cnt;
-
- wq_int_cnt = _POW_GROUP_RD8(sc, pow_ih, POW_WQ_INT_CNT0_OFFSET);
- if (wq_int_cnt & POW_WQ_INT_CNTX_TC_CNT)
- pow_ih->pi_ev_stray_tc.ev_count++;
- if (wq_int_cnt & POW_WQ_INT_CNTX_DS_CNT)
- pow_ih->pi_ev_stray_ds.ev_count++;
- if (wq_int_cnt & POW_WQ_INT_CNTX_IQ_CNT)
- pow_ih->pi_ev_stray_iq.ev_count++;
- }
-#endif
-}
-#endif
-
-#ifdef CNMAC_DEBUG
-#define _POW_INTR_WORK_DEBUG_IVAL(sc, ih) \
- octpow_intr_work_debug_ival((sc), (ih))
-#define _POW_INTR_WORK_DEBUG_PER(sc, ih, count) \
- octpow_intr_work_debug_per((sc), (ih), (count))
-#else
-#define _POW_INTR_WORK_DEBUG_IVAL(sc, ih) \
- do {} while (0)
-#define _POW_INTR_WORK_DEBUG_PER(sc, ih, count) \
- do {} while (0)
-#endif
-
/*
* Interrupt handling by fixed count, following Cavium's SDK code.
*
@@ -514,8 +335,6 @@ octpow_intr_work(struct octpow_softc *sc
_POW_WR8(sc, POW_PP_GRP_MSK0_OFFSET, __BIT(pow_ih->pi_group));
- _POW_INTR_WORK_DEBUG_IVAL(sc, pow_ih);
-
for (count = 0; count < recv_limit; count++) {
octpow_tag_sw_wait();
octpow_work_request_async(
@@ -526,8 +345,6 @@ octpow_intr_work(struct octpow_softc *sc
break;
(*pow_ih->pi_cb)(pow_ih->pi_data, work);
}
-
- _POW_INTR_WORK_DEBUG_PER(sc, pow_ih, count);
}
static int
@@ -647,466 +464,3 @@ octpow_ring_intr(void)
return int_rate;
}
#endif /* CNMAC_INTR_FEEDBACK_RING */
-
-/* -------------------------------------------------------------------------- */
-
-/* ---- debug configuration */
-
-#ifdef CNMAC_DEBUG
-
-void
-octpow_error_int_enable(void *data, int enable)
-{
- struct octpow_softc *sc = data;
- uint64_t pow_error_int_xxx;
-
- pow_error_int_xxx =
- POW_ECC_ERR_IOP | POW_ECC_ERR_RPE |
- POW_ECC_ERR_DBE | POW_ECC_ERR_SBE;
- _POW_WR8(sc, POW_ECC_ERR_OFFSET, pow_error_int_xxx);
- _POW_WR8(sc, POW_ECC_ERR_OFFSET, enable ? pow_error_int_xxx : 0);
-}
-
-uint64_t
-octpow_error_int_summary(void *data)
-{
- struct octpow_softc *sc = data;
- uint64_t summary;
-
- summary = _POW_RD8(sc, POW_ECC_ERR_OFFSET);
- _POW_WR8(sc, POW_ECC_ERR_OFFSET, summary);
- return summary;
-}
-
-#endif
-
-/* -------------------------------------------------------------------------- */
-
-/* ---- debug counter */
-
-#ifdef CNMAC_DEBUG
-int octpow_intr_rml_verbose;
-struct evcnt octpow_intr_evcnt;
-
-static const struct octeon_evcnt_entry octpow_intr_evcnt_entries[] = {
-#define _ENTRY(name, type, parent, descr) \
- OCTEON_EVCNT_ENTRY(struct octpow_softc, name, type, parent, descr)
- _ENTRY(powecciopcsrpend, MISC, NULL, "pow csr load"),
- _ENTRY(powecciopdbgpend, MISC, NULL, "pow dbg load"),
- _ENTRY(powecciopaddwork, MISC, NULL, "pow addwork"),
- _ENTRY(powecciopillop, MISC, NULL, "pow ill op"),
- _ENTRY(poweccioppend24, MISC, NULL, "pow pend24"),
- _ENTRY(poweccioppend23, MISC, NULL, "pow pend23"),
- _ENTRY(poweccioppend22, MISC, NULL, "pow pend22"),
- _ENTRY(poweccioppend21, MISC, NULL, "pow pend21"),
- _ENTRY(poweccioptagnull, MISC, NULL, "pow tag null"),
- _ENTRY(poweccioptagnullnull, MISC, NULL, "pow tag nullnull"),
- _ENTRY(powecciopordatom, MISC, NULL, "pow ordered atomic"),
- _ENTRY(powecciopnull, MISC, NULL, "pow core null"),
- _ENTRY(powecciopnullnull, MISC, NULL, "pow core nullnull"),
- _ENTRY(poweccrpe, MISC, NULL, "pow remote-pointer error"),
- _ENTRY(poweccsyn, MISC, NULL, "pow syndrome value"),
- _ENTRY(poweccdbe, MISC, NULL, "pow double bit"),
- _ENTRY(poweccsbe, MISC, NULL, "pow single bit"),
-#undef _ENTRY
-};
-
-void
-octpow_intr_evcnt_attach(struct octpow_softc *sc)
-{
- OCTEON_EVCNT_ATTACH_EVCNTS(sc, octpow_intr_evcnt_entries, "pow0");
-}
-
-void
-octpow_intr_rml(void *arg)
-{
- struct octpow_softc *sc;
- uint64_t reg;
-
- octpow_intr_evcnt.ev_count++;
- sc = __octpow_softc;
- KASSERT(sc != NULL);
- reg = octpow_error_int_summary(sc);
- if (octpow_intr_rml_verbose)
- printf("%s: POW_ECC_ERR=0x%016" PRIx64 "\n", __func__, reg);
- switch (reg & POW_ECC_ERR_IOP) {
- case POW_ECC_ERR_IOP_CSRPEND:
- OCTEON_EVCNT_INC(sc, powecciopcsrpend);
- break;
- case POW_ECC_ERR_IOP_DBGPEND:
- OCTEON_EVCNT_INC(sc, powecciopdbgpend);
- break;
- case POW_ECC_ERR_IOP_ADDWORK:
- OCTEON_EVCNT_INC(sc, powecciopaddwork);
- break;
- case POW_ECC_ERR_IOP_ILLOP:
- OCTEON_EVCNT_INC(sc, powecciopillop);
- break;
- case POW_ECC_ERR_IOP_PEND24:
- OCTEON_EVCNT_INC(sc, poweccioppend24);
- break;
- case POW_ECC_ERR_IOP_PEND23:
- OCTEON_EVCNT_INC(sc, poweccioppend23);
- break;
- case POW_ECC_ERR_IOP_PEND22:
- OCTEON_EVCNT_INC(sc, poweccioppend22);
- break;
- case POW_ECC_ERR_IOP_PEND21:
- OCTEON_EVCNT_INC(sc, poweccioppend21);
- break;
- case POW_ECC_ERR_IOP_TAGNULL:
- OCTEON_EVCNT_INC(sc, poweccioptagnull);
- break;
- case POW_ECC_ERR_IOP_TAGNULLNULL:
- OCTEON_EVCNT_INC(sc, poweccioptagnullnull);
- break;
- case POW_ECC_ERR_IOP_ORDATOM:
- OCTEON_EVCNT_INC(sc, powecciopordatom);
- break;
- case POW_ECC_ERR_IOP_NULL:
- OCTEON_EVCNT_INC(sc, powecciopnull);
- break;
- case POW_ECC_ERR_IOP_NULLNULL:
- OCTEON_EVCNT_INC(sc, powecciopnullnull);
- break;
- default:
- break;
- }
- if (reg & POW_ECC_ERR_RPE)
- OCTEON_EVCNT_INC(sc, poweccrpe);
- if (reg & POW_ECC_ERR_SYN)
- OCTEON_EVCNT_INC(sc, poweccsyn);
- if (reg & POW_ECC_ERR_DBE)
- OCTEON_EVCNT_INC(sc, poweccdbe);
- if (reg & POW_ECC_ERR_SBE)
- OCTEON_EVCNT_INC(sc, poweccsbe);
-}
-#endif
-
-/* -------------------------------------------------------------------------- */
-
-/* ---- debug dump */
-
-#ifdef CNMAC_DEBUG
-
-void octpow_dump_reg(void);
-void octpow_dump_ops(void);
-
-void
-octpow_dump(void)
-{
- octpow_dump_reg();
- octpow_dump_ops();
-}
-
-/* ---- register dump */
-
-struct octpow_dump_reg_entry {
- const char *name;
- const char *format;
- size_t offset;
-};
-
-#define _ENTRY(x) { #x, x##_BITS, x##_OFFSET }
-#define _ENTRY_0_7(x) \
- _ENTRY(x## 0), _ENTRY(x## 1), _ENTRY(x## 2), _ENTRY(x## 3), \
- _ENTRY(x## 4), _ENTRY(x## 5), _ENTRY(x## 6), _ENTRY(x## 7)
-#define _ENTRY_0_15(x) \
- _ENTRY(x## 0), _ENTRY(x## 1), _ENTRY(x## 2), _ENTRY(x## 3), \
- _ENTRY(x## 4), _ENTRY(x## 5), _ENTRY(x## 6), _ENTRY(x## 7), \
- _ENTRY(x## 8), _ENTRY(x## 9), _ENTRY(x##10), _ENTRY(x##11), \
- _ENTRY(x##12), _ENTRY(x##13), _ENTRY(x##14), _ENTRY(x##15)
-
-static const struct octpow_dump_reg_entry octpow_dump_reg_entries[] = {
- _ENTRY (POW_PP_GRP_MSK0),
- _ENTRY (POW_PP_GRP_MSK1),
- _ENTRY_0_15 (POW_WQ_INT_THR),
- _ENTRY_0_15 (POW_WQ_INT_CNT),
- _ENTRY_0_7 (POW_QOS_THR),
- _ENTRY_0_7 (POW_QOS_RND),
- _ENTRY (POW_WQ_INT),
- _ENTRY (POW_WQ_INT_PC),
- _ENTRY (POW_NW_TIM),
- _ENTRY (POW_ECC_ERR),
- _ENTRY (POW_NOS_CNT),
- _ENTRY_0_15 (POW_WS_PC),
- _ENTRY_0_7 (POW_WA_PC),
- _ENTRY_0_7 (POW_IQ_CNT),
- _ENTRY (POW_WA_COM_PC),
- _ENTRY (POW_IQ_COM_CNT),
- _ENTRY (POW_TS_PC),
- _ENTRY (POW_DS_PC),
- _ENTRY (POW_BIST_STAT)
-};
-
-#undef _ENTRY
-
-void
-octpow_dump_reg(void)
-{
- struct octpow_softc *sc = __octpow_softc;
- const struct octpow_dump_reg_entry *entry;
- uint64_t tmp;
- char buf[512];
- int i;
-
- for (i = 0; i < (int)__arraycount(octpow_dump_reg_entries); i++) {
- entry = &octpow_dump_reg_entries[i];
- tmp = _POW_RD8(sc, entry->offset);
- if (entry->format == NULL)
- snprintf(buf, sizeof(buf), "%16" PRIx64, tmp);
- else
- snprintb(buf, sizeof(buf), entry->format, tmp);
- printf("\t%-24s: %s\n", entry->name, buf);
- }
-}
-
-/* ---- operations dump */
-
-struct octpow_dump_ops_entry {
- const char *name;
- const char *format;
- uint64_t (*func)(int);
-};
-
-void octpow_dump_ops_coreid(int);
-void octpow_dump_ops_index(int);
-void octpow_dump_ops_qos(int);
-void octpow_dump_ops_grp(int);
-void octpow_dump_ops_queue(int);
-void octpow_dump_ops_common(const struct octpow_dump_ops_entry *, size_t,
- const char *, int);
-
-#define _ENTRY_COMMON(name, prefix, x, y) \
- { #name "_" #x, prefix##_##y##_BITS, octpow_status_by_##name##_##x }
-
-const struct octpow_dump_ops_entry octpow_dump_ops_coreid_entries[] = {
-#define _ENTRY(x, y) _ENTRY_COMMON(coreid, POW_STATUS_LOAD_RESULT, x, y)
- _ENTRY(pend_tag, PEND_TAG),
- _ENTRY(pend_wqp, PEND_WQP),
- _ENTRY(cur_tag_next, CUR_TAG_NEXT),
- _ENTRY(cur_tag_prev, CUR_TAG_PREV),
- _ENTRY(cur_wqp_next, CUR_WQP_NEXT),
- _ENTRY(cur_wqp_prev, CUR_WQP_PREV)
-#undef _ENTRY
-};
-
-const struct octpow_dump_ops_entry octpow_dump_ops_index_entries[] = {
-#define _ENTRY(x, y) _ENTRY_COMMON(index, POW_MEMORY_LOAD_RESULT, x, y)
- _ENTRY(tag, TAG),
- _ENTRY(wqp, WQP),
- _ENTRY(desched, DESCHED)
-#undef _ENTRY
-};
-
-const struct octpow_dump_ops_entry octpow_dump_ops_qos_entries[] = {
-#define _ENTRY(x, y) _ENTRY_COMMON(qos, POW_IDXPTR_LOAD_RESULT_QOS, x, y)
- _ENTRY(free_loc, FREE_LOC)
-#undef _ENTRY
-};
-
-const struct octpow_dump_ops_entry octpow_dump_ops_grp_entries[] = {
-#define _ENTRY(x, y) _ENTRY_COMMON(grp, POW_IDXPTR_LOAD_RESULT_GRP, x, y)
- _ENTRY(nosched_des, NOSCHED_DES)
-#undef _ENTRY
-};
-
-const struct octpow_dump_ops_entry octpow_dump_ops_queue_entries[] = {
-#define _ENTRY(x, y) _ENTRY_COMMON(queue, POW_IDXPTR_LOAD_RESULT_QUEUE, x, y)
- _ENTRY(remote_head, REMOTE_HEAD),
- _ENTRY(remote_tail, REMOTE_TAIL)
-#undef _ENTRY
-};
-
-void
-octpow_dump_ops(void)
-{
- int i;
-
- /* XXX */
- for (i = 0; i < 2/* XXX */; i++)
- octpow_dump_ops_coreid(i);
-
- /* XXX */
- octpow_dump_ops_index(0);
-
- for (i = 0; i < 8; i++)
- octpow_dump_ops_qos(i);
-
- for (i = 0; i < 16; i++)
- octpow_dump_ops_grp(i);
-
- for (i = 0; i < 16; i++)
- octpow_dump_ops_queue(i);
-}
-
-void
-octpow_dump_ops_coreid(int coreid)
-{
- octpow_dump_ops_common(octpow_dump_ops_coreid_entries,
- __arraycount(octpow_dump_ops_coreid_entries), "coreid", coreid);
-}
-
-void
-octpow_dump_ops_index(int index)
-{
- octpow_dump_ops_common(octpow_dump_ops_index_entries,
- __arraycount(octpow_dump_ops_index_entries), "index", index);
-}
-
-void
-octpow_dump_ops_qos(int qos)
-{
- octpow_dump_ops_common(octpow_dump_ops_qos_entries,
- __arraycount(octpow_dump_ops_qos_entries), "qos", qos);
-}
-
-void
-octpow_dump_ops_grp(int grp)
-{
- octpow_dump_ops_common(octpow_dump_ops_grp_entries,
- __arraycount(octpow_dump_ops_grp_entries), "grp", grp);
-}
-
-void
-octpow_dump_ops_queue(int queue)
-{
- octpow_dump_ops_common(octpow_dump_ops_queue_entries,
- __arraycount(octpow_dump_ops_queue_entries), "queue", queue);
-}
-
-void
-octpow_dump_ops_common(const struct octpow_dump_ops_entry *entries,
- size_t nentries, const char *by_what, int arg)
-{
- const struct octpow_dump_ops_entry *entry;
- uint64_t tmp;
- char buf[512];
- int i;
-
- printf("%s=%d\n", by_what, arg);
- for (i = 0; i < (int)nentries; i++) {
- entry = &entries[i];
- tmp = (*entry->func)(arg);
- if (entry->format == NULL)
- snprintf(buf, sizeof(buf), "%16" PRIx64, tmp);
- else
- snprintb(buf, sizeof(buf), entry->format, tmp);
- printf("\t%-24s: %s\n", entry->name, buf);
- }
-}
-
-#endif
-
-/* -------------------------------------------------------------------------- */
-
-/* ---- test */
-
-#ifdef octPOW_TEST
-/*
- * Standalone test entries; meant to be called from ddb.
- */
-
-void octpow_test(void);
-void octpow_test_dump_wqe(paddr_t);
-
-static void octpow_test_1(void);
-
-struct test_wqe {
- uint64_t word0;
- uint64_t word1;
- uint64_t word2;
- uint64_t word3;
-} __packed;
-struct test_wqe test_wqe;
-
-void
-octpow_test(void)
-{
- octpow_test_1();
-}
-
-static void
-octpow_test_1(void)
-{
- struct test_wqe *wqe = &test_wqe;
- int qos, grp, queue, tt;
- uint32_t tag;
- paddr_t ptr;
-
- qos = 7; /* XXX */
- grp = queue = 15; /* XXX */
- tt = POW_TAG_TYPE_ORDERED; /* XXX */
- tag = UINT32_C(0x01234567); /* XXX */
-
- /* => make sure that the queue is empty */
-
- octpow_dump_ops_qos(qos);
- octpow_dump_ops_grp(grp);
- printf("\n");
-
- /*
- * Initialize WQE.
- *
- * word0:next is used by hardware.
- *
- * word1:qos, word1:grp, word1:tt, word1:tag must match with arguments
- * of the following ADDWQ transaction.
- */
-
- (void)memset(wqe, 0, sizeof(*wqe));
- wqe->word0 =
- __BITS64_SET(POW_WQE_WORD0_NEXT, 0);
- wqe->word1 =
- __BITS64_SET(POW_WQE_WORD1_QOS, qos) |
- __BITS64_SET(POW_WQE_WORD1_GRP, grp) |
- __BITS64_SET(POW_WQE_WORD1_TT, tt) |
- __BITS64_SET(POW_WQE_WORD1_TAG, tag);
-
- printf("calling ADDWQ\n");
- octpow_ops_addwq(MIPS_KSEG0_TO_PHYS(wqe), qos, grp, tt, tag);
-
- octpow_dump_ops_qos(qos);
- octpow_dump_ops_grp(grp);
- printf("\n");
-
- /* => make sure that a WQE is added to the queue */
-
- printf("calling GET_WORK_LOAD\n");
- ptr = octpow_ops_get_work_load(0);
-
- octpow_dump_ops_qos(qos);
- octpow_dump_ops_grp(grp);
- printf("\n");
-
- octpow_test_dump_wqe(ptr);
-
- /* => make sure that the WQE is in-flight (and scheduled) */
-
- printf("calling SWTAG(NULL)\n");
- octpow_ops_swtag(POW_TAG_TYPE_NULL, tag);
-
- octpow_dump_ops_qos(qos);
- octpow_dump_ops_grp(grp);
- printf("\n");
-
- /* => make sure that the WQE is un-scheduled (completed) */
-}
-
-void
-octpow_test_dump_wqe(paddr_t ptr)
-{
- uint64_t word0, word1;
- char buf[128];
-
- printf("wqe\n");
-
- word0 = *(uint64_t *)MIPS_PHYS_TO_XKPHYS_CACHED(ptr);
- snprintb(buf, sizeof(buf), POW_WQE_WORD0_BITS, word0);
- printf("\t%-24s: %s\n", "word0", buf);
-
- word1 = *(uint64_t *)MIPS_PHYS_TO_XKPHYS_CACHED(ptr + 8);
- snprintb(buf, sizeof(buf), POW_WQE_WORD1_BITS, word1);
- printf("\t%-24s: %s\n", "word1", buf);
-}
-#endif
Index: src/sys/arch/mips/conf/files.octeon
diff -u src/sys/arch/mips/conf/files.octeon:1.7 src/sys/arch/mips/conf/files.octeon:1.8
--- src/sys/arch/mips/conf/files.octeon:1.7 Mon Jun 15 07:48:12 2020
+++ src/sys/arch/mips/conf/files.octeon Mon Jun 22 02:26:20 2020
@@ -1,4 +1,4 @@
-# $NetBSD: files.octeon,v 1.7 2020/06/15 07:48:12 simonb Exp $
+# $NetBSD: files.octeon,v 1.8 2020/06/22 02:26:20 simonb Exp $
file arch/mips/mips/locore_octeon.S
file arch/mips/mips/bus_dma.c
@@ -13,8 +13,7 @@ file arch/mips/cavium/dev/octeon_ciu.c
defparam opt_octeon.h OCTEON_ECLK
defparam opt_octeon.h CNMAC_RING_MAX
defparam opt_octeon.h CNMAC_RING_MIN
-defflag opt_octeon.h CNMAC_DEBUG
- CNMAC_FAST_CRC
+defflag opt_octeon.h CNMAC_FAST_CRC
CNMAC_IPD_RED
CNMAC_USENFS
OCTEON_USBN_CN31XX_DMA_WORKAROUND