/* RBUF misc statistics */
        STAT_RBUF("rbuf_ovflow_cnt", mib.rbuf_ovflow_cnt, RBUF_OVFL_DISC_CNTR),
        STAT_RBUF("rbuf_err_cnt", mib.rbuf_err_cnt, RBUF_ERR_PKT_CNTR),
+       /* RDMA misc statistics */
+       STAT_RDMA("rdma_ovflow_cnt", mib.rdma_ovflow_cnt, RDMA_OVFL_DISC_CNTR),
        STAT_MIB_SOFT("alloc_rx_buff_failed", mib.alloc_rx_buff_failed),
        STAT_MIB_SOFT("rx_dma_failed", mib.rx_dma_failed),
        STAT_MIB_SOFT("tx_dma_failed", mib.tx_dma_failed),
        case BCM_SYSPORT_STAT_NETDEV64:
        case BCM_SYSPORT_STAT_RXCHK:
        case BCM_SYSPORT_STAT_RBUF:
+       case BCM_SYSPORT_STAT_RDMA:
        case BCM_SYSPORT_STAT_SOFT:
                return true;
        default:
                        if (val == ~0)
                                rbuf_writel(priv, 0, s->reg_offset);
                        break;
+               case BCM_SYSPORT_STAT_RDMA:
+                       if (!priv->is_lite)
+                               continue;
+
+                       val = rdma_readl(priv, s->reg_offset);
+                       if (val == ~0)
+                               rdma_writel(priv, 0, s->reg_offset);
+                       break;
                }
 
                j += s->stat_sizeof;
 
 
 #define RDMA_WRITE_PTR_HI              0x1010
 #define RDMA_WRITE_PTR_LO              0x1014
+#define RDMA_OVFL_DISC_CNTR            0x1018
 #define RDMA_PROD_INDEX                        0x1018
 #define  RDMA_PROD_INDEX_MASK          0xffff
 
        u32 rxchk_other_pkt_disc;
        u32 rbuf_ovflow_cnt;
        u32 rbuf_err_cnt;
+       u32 rdma_ovflow_cnt;
        u32 alloc_rx_buff_failed;
        u32 rx_dma_failed;
        u32 tx_dma_failed;
        BCM_SYSPORT_STAT_RUNT,
        BCM_SYSPORT_STAT_RXCHK,
        BCM_SYSPORT_STAT_RBUF,
+       BCM_SYSPORT_STAT_RDMA,
        BCM_SYSPORT_STAT_SOFT,
 };
 
        .reg_offset = ofs, \
 }
 
+#define STAT_RDMA(str, m, ofs) { \
+       .stat_string = str, \
+       .stat_sizeof = sizeof(((struct bcm_sysport_priv *)0)->m), \
+       .stat_offset = offsetof(struct bcm_sysport_priv, m), \
+       .type = BCM_SYSPORT_STAT_RDMA, \
+       .reg_offset = ofs, \
+}
+
 /* TX bytes and packets */
 #define NUM_SYSPORT_TXQ_STAT   2