cxgbe(4): Add two new debug flags -- one to allow manual firmware
install after full initialization, and another to disable the TCB cache (T6+). The latter works as a tunable only. Note that debug_flags are for debugging only and should not be set normally. MFC after: 1 week Sponsored by: Chelsio Communications
This commit is contained in:
parent
452dc08dca
commit
214d5a91e8
@ -172,7 +172,9 @@ enum {
|
||||
INTR_ALL = (INTR_RXQ | INTR_OFLD_RXQ),
|
||||
|
||||
/* adapter debug_flags */
|
||||
DF_DUMP_MBOX = (1 << 0),
|
||||
DF_DUMP_MBOX = (1 << 0), /* Log all mbox cmd/rpl. */
|
||||
DF_LOAD_FW_ANYTIME = (1 << 1), /* Allow LOAD_FW after init */
|
||||
DF_DISABLE_TCB_CACHE = (1 << 2), /* Disable TCB cache (T6+) */
|
||||
};
|
||||
|
||||
#define IS_DOOMED(vi) ((vi)->flags & DOOMED)
|
||||
|
@ -9049,7 +9049,14 @@ load_fw(struct adapter *sc, struct t4_data *fw)
|
||||
if (rc)
|
||||
return (rc);
|
||||
|
||||
if (sc->flags & FULL_INIT_DONE) {
|
||||
/*
|
||||
* The firmware, with the sole exception of the memory parity error
|
||||
* handler, runs from memory and not flash. It is almost always safe to
|
||||
* install a new firmware on a running system. Just set bit 1 in
|
||||
* hw.cxgbe.dflags or dev.<nexus>.<n>.dflags first.
|
||||
*/
|
||||
if (sc->flags & FULL_INIT_DONE &&
|
||||
(sc->debug_flags & DF_LOAD_FW_ANYTIME) == 0) {
|
||||
rc = EBUSY;
|
||||
goto done;
|
||||
}
|
||||
|
@ -615,6 +615,16 @@ t4_tweak_chip_settings(struct adapter *sc)
|
||||
else
|
||||
v = V_TSCALE(tscale - 2);
|
||||
t4_set_reg_field(sc, A_SGE_ITP_CONTROL, m, v);
|
||||
|
||||
if (sc->debug_flags & DF_DISABLE_TCB_CACHE) {
|
||||
m = V_RDTHRESHOLD(M_RDTHRESHOLD) | F_WRTHRTHRESHEN |
|
||||
V_WRTHRTHRESH(M_WRTHRTHRESH);
|
||||
t4_tp_pio_read(sc, &v, 1, A_TP_CMM_CONFIG, 1);
|
||||
v &= ~m;
|
||||
v |= V_RDTHRESHOLD(1) | F_WRTHRTHRESHEN |
|
||||
V_WRTHRTHRESH(16);
|
||||
t4_tp_pio_write(sc, &v, 1, A_TP_CMM_CONFIG, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/* 4K, 16K, 64K, 256K DDP "page sizes" for TDDP */
|
||||
|
Loading…
Reference in New Issue
Block a user