xref: /dpdk/drivers/common/cnxk/roc_errata.h (revision 9564023df46eced8dd1bc8a26fe9739048f740e9)
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)11 roc_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)19 roc_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)26 roc_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)34 roc_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)41 roc_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)50 roc_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)57 roc_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)64 roc_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)72 roc_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)80 roc_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)87 roc_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)94 roc_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)101 roc_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)109 roc_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)116 roc_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