@@ -70,4 +70,10 @@ enum {
ACC100_VF_INT_QMGR_AQ_OVERTHRESHOLD = 9,
};
+/* TIP PF2VF Comms */
+enum {
+ ACC100_VF2PF_STATUS_REQUEST = 0,
+ ACC100_VF2PF_USING_VF = 1,
+};
+
#endif /* ACC100_VF_ENUM_H */
@@ -292,6 +292,13 @@ fetch_acc100_config(struct rte_bbdev *dev)
acc100_conf->q_dl_5g.aq_depth_log2);
}
+static inline void
+acc100_vf2pf(struct acc100_device *d, unsigned int payload)
+{
+ if (d->device_variant == ACC101_VARIANT)
+ acc100_reg_write(d, HWVfHiVfToPfDbellVf, payload);
+}
+
static void
free_base_addresses(void **base_addrs, int size)
{
@@ -712,6 +719,7 @@ acc100_setup_queues(struct rte_bbdev *dev, uint16_t num_queues, int socket_id)
/* Mark as configured properly */
d->configured = true;
+ acc100_vf2pf(d, ACC100_VF2PF_USING_VF);
rte_bbdev_log_debug(
"ACC100 (%s) configured sw_rings = %p, sw_rings_iova = %#"