Avoid using stashing option of stype in NPA in cn10k-a0 stepping.
This is a workaround for a HW Errata due to which NPA stashing operations
will never result in writing the data into L2 cache. But instead, it will
be written into LLC.
Signed-off-by: Ashwin Sekhar T K <asekhar@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
memset(&aura, 0, sizeof(aura));
aura.fc_ena = 1;
+ if (roc_model_is_cn9k() || roc_model_is_cn10ka_a0())
+ aura.fc_stype = 0x0; /* STF */
+ else
+ aura.fc_stype = 0x3; /* STSTP */
aura.fc_addr = (uint64_t)sq->fc;
aura.fc_hyst_bits = 0; /* Store count on all updates */
rc = roc_npa_pool_create(&sq->aura_handle, blk_sz, NIX_MAX_SQB, &aura,
req->aura.fc_ena = enable;
req->aura_mask.fc_ena = 1;
+ if (roc_model_is_cn9k() || roc_model_is_cn10ka_a0()) {
+ req->aura.fc_stype = 0x0; /* STF */
+ req->aura_mask.fc_stype = 0x0; /* STF */
+ } else {
+ req->aura.fc_stype = 0x3; /* STSTP */
+ req->aura_mask.fc_stype = 0x3; /* STSTP */
+ }
rc = mbox_process(mbox);
if (rc)
cmp.u = 0;
cmp.compare_s.aura = roc_npa_aura_handle_to_aura(aura_handle);
cmp.compare_s.drop = drop;
- cmp.compare_s.stype = ALLOC_STYPE_STSTP;
+ cmp.compare_s.stype = ALLOC_STYPE_STF;
cmp.compare_s.dis_wait = dis_wait;
cmp.compare_s.count = num;