1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(C) 2022 Marvell. 3 */ 4 #ifndef _ROC_ERRATA_H_ 5 #define _ROC_ERRATA_H_ 6 7 #include "roc_model.h" 8 9 /* Errata IPBUNIXRX-40129, IPBUNIXRX-40179 */ 10 static inline bool roc_errata_nix_has_no_drop_re(void)11roc_errata_nix_has_no_drop_re(void) 12 { 13 return (roc_model_is_cn10ka_a0() || roc_model_is_cnf10ka_a0() || 14 roc_model_is_cnf10kb_a0() || roc_model_is_cn10ka_a1()); 15 } 16 17 /* Errata NIX-34873 */ 18 static inline bool roc_errata_nix_has_cq_min_size_4k(void)19roc_errata_nix_has_cq_min_size_4k(void) 20 { 21 return (roc_model_is_cn96_a0() || roc_model_is_cn95_a0()); 22 } 23 24 /* Errata IPBUNPA-37480 */ 25 static inline bool roc_errata_npa_has_no_fc_stype_ststp(void)26roc_errata_npa_has_no_fc_stype_ststp(void) 27 { 28 return roc_model_is_cn10ka_a0() || roc_model_is_cn10ka_a1() || roc_model_is_cnf10ka_a0() || 29 roc_model_is_cnf10kb_a0(); 30 } 31 32 /* Errata IPBUNIXTX-39337 */ 33 static inline bool roc_errata_nix_has_no_drop_aging(void)34roc_errata_nix_has_no_drop_aging(void) 35 { 36 return (roc_model_is_cn10ka_a0() || roc_model_is_cnf10ka_a0()); 37 } 38 39 /* Errata IPBUNIXRX-40130 */ 40 static inline bool roc_errata_nix_has_no_vwqe_flush_op(void)41roc_errata_nix_has_no_vwqe_flush_op(void) 42 { 43 return (roc_model_is_cn10ka_a0() || roc_model_is_cnf10ka_a0() || 44 roc_model_is_cnf10kb_a0() || roc_model_is_cn10ka_a1() || roc_model_is_cn10ka_b0() || 45 roc_model_is_cn10kb_a0()); 46 } 47 48 /* Errata IPBURVUM-38481 */ 49 static inline bool roc_errata_ruvm_has_no_interrupt_with_msixen(void)50roc_errata_ruvm_has_no_interrupt_with_msixen(void) 51 { 52 return true; 53 } 54 55 /* Errata IPBUCPT-38551 */ 56 static inline bool roc_errata_cpt_has_use_incorrect_ldwb(void)57roc_errata_cpt_has_use_incorrect_ldwb(void) 58 { 59 return true; 60 } 61 62 /* Errata IPBUNIXTX-39322 */ 63 static inline bool roc_errata_nix_has_overwrite_incorrect_sq_intr(void)64roc_errata_nix_has_overwrite_incorrect_sq_intr(void) 65 { 66 return (roc_model_is_cn10ka_a0() || roc_model_is_cnf10ka_a0() || 67 roc_model_is_cnf10kb_a0() || roc_model_is_cn10ka_a1()); 68 } 69 70 /* Errata IPBUNIXTX-39248 */ 71 static inline bool roc_errata_nix_has_perf_issue_on_stats_update(void)72roc_errata_nix_has_perf_issue_on_stats_update(void) 73 { 74 return (roc_model_is_cn10ka_a0() || roc_model_is_cnf10ka_a0() || 75 roc_model_is_cnf10kb_a0() || roc_model_is_cn10ka_a1()); 76 } 77 78 /* Errata IPBUCPT-38736, IPBUCPT-38737 */ 79 static inline bool roc_errata_cpt_hang_on_x2p_bp(void)80roc_errata_cpt_hang_on_x2p_bp(void) 81 { 82 return roc_model_is_cn10ka_a0() || roc_model_is_cn10ka_a1(); 83 } 84 85 /* Errata IPBUCPT-38756 */ 86 static inline bool roc_errata_cpt_has_ctx_fetch_issue(void)87roc_errata_cpt_has_ctx_fetch_issue(void) 88 { 89 return roc_model_is_cn10kb(); 90 } 91 92 /* IPBUNIXRX-40400 */ 93 static inline bool roc_errata_nix_no_meta_aura(void)94roc_errata_nix_no_meta_aura(void) 95 { 96 return roc_model_is_cn10ka_a0(); 97 } 98 99 /* Errata IPBUNIXTX-35039 */ 100 static inline bool roc_errata_nix_sdp_send_has_mtu_size_16k(void)101roc_errata_nix_sdp_send_has_mtu_size_16k(void) 102 { 103 return (roc_model_is_cnf95xxn_a0() || roc_model_is_cnf95xxo_a0() || 104 roc_model_is_cn96_a0() || roc_model_is_cn96_b0()); 105 } 106 107 /* Errata IPBUCPT-38753 */ 108 static inline bool roc_errata_cpt_hang_on_mixed_ctx_val(void)109roc_errata_cpt_hang_on_mixed_ctx_val(void) 110 { 111 return roc_model_is_cn10ka_a0() || roc_model_is_cn10ka_a1(); 112 } 113 114 /* Errata IPBUNIXTX-39300 */ 115 static inline bool roc_errata_nix_assign_incorrect_qint(void)116roc_errata_nix_assign_incorrect_qint(void) 117 { 118 return (roc_model_is_cn10ka_a0() || roc_model_is_cnf10ka_a0() || 119 roc_model_is_cnf10kb_a0() || roc_model_is_cn10ka_a1()); 120 } 121 122 #endif /* _ROC_ERRATA_H_ */ 123