1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(C) 2021 Marvell.
8 struct roc_sso_hwgrp_qos {
15 struct roc_sso_hws_stats {
19 struct roc_sso_hwgrp_stats {
31 struct plt_pci_device *pci_dev;
40 uint32_t xaq_buf_size;
43 #define ROC_SSO_MEM_SZ (16 * 1024)
44 uint8_t reserved[ROC_SSO_MEM_SZ] __plt_cache_aligned;
45 } __plt_cache_aligned;
47 /* SSO device initialization */
48 int __roc_api roc_sso_dev_init(struct roc_sso *roc_sso);
49 int __roc_api roc_sso_dev_fini(struct roc_sso *roc_sso);
51 /* SSO device configuration */
52 int __roc_api roc_sso_rsrc_init(struct roc_sso *roc_sso, uint8_t nb_hws,
54 void __roc_api roc_sso_rsrc_fini(struct roc_sso *roc_sso);
55 int __roc_api roc_sso_hwgrp_qos_config(struct roc_sso *roc_sso,
56 struct roc_sso_hwgrp_qos *qos,
57 uint8_t nb_qos, uint32_t nb_xaq);
58 int __roc_api roc_sso_hwgrp_alloc_xaq(struct roc_sso *roc_sso,
59 uint32_t npa_aura_id, uint16_t hwgrps);
60 int __roc_api roc_sso_hwgrp_release_xaq(struct roc_sso *roc_sso,
62 int __roc_api roc_sso_hwgrp_set_priority(struct roc_sso *roc_sso,
63 uint16_t hwgrp, uint8_t weight,
64 uint8_t affinity, uint8_t priority);
65 uint64_t __roc_api roc_sso_ns_to_gw(struct roc_sso *roc_sso, uint64_t ns);
66 int __roc_api roc_sso_hws_link(struct roc_sso *roc_sso, uint8_t hws,
67 uint16_t hwgrp[], uint16_t nb_hwgrp);
68 int __roc_api roc_sso_hws_unlink(struct roc_sso *roc_sso, uint8_t hws,
69 uint16_t hwgrp[], uint16_t nb_hwgrp);
70 int __roc_api roc_sso_hwgrp_hws_link_status(struct roc_sso *roc_sso,
71 uint8_t hws, uint16_t hwgrp);
72 uintptr_t __roc_api roc_sso_hws_base_get(struct roc_sso *roc_sso, uint8_t hws);
73 uintptr_t __roc_api roc_sso_hwgrp_base_get(struct roc_sso *roc_sso,
77 void __roc_api roc_sso_dump(struct roc_sso *roc_sso, uint8_t nb_hws,
78 uint16_t hwgrp, FILE *f);
79 int __roc_api roc_sso_hwgrp_stats_get(struct roc_sso *roc_sso, uint8_t hwgrp,
80 struct roc_sso_hwgrp_stats *stats);
81 int __roc_api roc_sso_hws_stats_get(struct roc_sso *roc_sso, uint8_t hws,
82 struct roc_sso_hws_stats *stats);
84 #endif /* _ROC_SSOW_H_ */