block->fn_map[lf] = attach ? pcifunc : 0;
 
-       switch (block->type) {
-       case BLKTYPE_NPA:
+       switch (block->addr) {
+       case BLKADDR_NPA:
                pfvf->npalf = attach ? true : false;
                num_lfs = pfvf->npalf;
                break;
-       case BLKTYPE_NIX:
+       case BLKADDR_NIX0:
+       case BLKADDR_NIX1:
                pfvf->nixlf = attach ? true : false;
                num_lfs = pfvf->nixlf;
                break;
-       case BLKTYPE_SSO:
+       case BLKADDR_SSO:
                attach ? pfvf->sso++ : pfvf->sso--;
                num_lfs = pfvf->sso;
                break;
-       case BLKTYPE_SSOW:
+       case BLKADDR_SSOW:
                attach ? pfvf->ssow++ : pfvf->ssow--;
                num_lfs = pfvf->ssow;
                break;
-       case BLKTYPE_TIM:
+       case BLKADDR_TIM:
                attach ? pfvf->timlfs++ : pfvf->timlfs--;
                num_lfs = pfvf->timlfs;
                break;
-       case BLKTYPE_CPT:
+       case BLKADDR_CPT0:
                attach ? pfvf->cptlfs++ : pfvf->cptlfs--;
                num_lfs = pfvf->cptlfs;
                break;
+       case BLKADDR_CPT1:
+               attach ? pfvf->cpt1_lfs++ : pfvf->cpt1_lfs--;
+               num_lfs = pfvf->cpt1_lfs;
+               break;
        }
 
        reg = is_pf ? block->pf_lfcnt_reg : block->vf_lfcnt_reg;
 /* Get current count of a RVU block's LF/slots
  * provisioned to a given RVU func.
  */
-static u16 rvu_get_rsrc_mapcount(struct rvu_pfvf *pfvf, int blktype)
+u16 rvu_get_rsrc_mapcount(struct rvu_pfvf *pfvf, int blkaddr)
+{
+       switch (blkaddr) {
+       case BLKADDR_NPA:
+               return pfvf->npalf ? 1 : 0;
+       case BLKADDR_NIX0:
+       case BLKADDR_NIX1:
+               return pfvf->nixlf ? 1 : 0;
+       case BLKADDR_SSO:
+               return pfvf->sso;
+       case BLKADDR_SSOW:
+               return pfvf->ssow;
+       case BLKADDR_TIM:
+               return pfvf->timlfs;
+       case BLKADDR_CPT0:
+               return pfvf->cptlfs;
+       case BLKADDR_CPT1:
+               return pfvf->cpt1_lfs;
+       }
+       return 0;
+}
+
+/* Return true if LFs of block type are attached to pcifunc */
+static bool is_blktype_attached(struct rvu_pfvf *pfvf, int blktype)
 {
        switch (blktype) {
        case BLKTYPE_NPA:
        case BLKTYPE_NIX:
                return pfvf->nixlf ? 1 : 0;
        case BLKTYPE_SSO:
-               return pfvf->sso;
+               return !!pfvf->sso;
        case BLKTYPE_SSOW:
-               return pfvf->ssow;
+               return !!pfvf->ssow;
        case BLKTYPE_TIM:
-               return pfvf->timlfs;
+               return !!pfvf->timlfs;
        case BLKTYPE_CPT:
-               return pfvf->cptlfs;
+               return pfvf->cptlfs || pfvf->cpt1_lfs;
        }
-       return 0;
+
+       return false;
 }
 
 bool is_pffunc_map_valid(struct rvu *rvu, u16 pcifunc, int blktype)
        pfvf = rvu_get_pfvf(rvu, pcifunc);
 
        /* Check if this PFFUNC has a LF of type blktype attached */
-       if (!rvu_get_rsrc_mapcount(pfvf, blktype))
+       if (!is_blktype_attached(pfvf, blktype))
                return false;
 
        return true;
 
        block = &hw->block[blkaddr];
 
-       num_lfs = rvu_get_rsrc_mapcount(pfvf, block->type);
+       num_lfs = rvu_get_rsrc_mapcount(pfvf, block->addr);
        if (!num_lfs)
                return;
 
        int free_lfs, mappedlfs;
 
        /* Only one NPA LF can be attached */
-       if (req->npalf && !rvu_get_rsrc_mapcount(pfvf, BLKTYPE_NPA)) {
+       if (req->npalf && !is_blktype_attached(pfvf, BLKTYPE_NPA)) {
                block = &hw->block[BLKADDR_NPA];
                free_lfs = rvu_rsrc_free_count(&block->lf);
                if (!free_lfs)
        }
 
        /* Only one NIX LF can be attached */
-       if (req->nixlf && !rvu_get_rsrc_mapcount(pfvf, BLKTYPE_NIX)) {
+       if (req->nixlf && !is_blktype_attached(pfvf, BLKTYPE_NIX)) {
                block = &hw->block[BLKADDR_NIX0];
                free_lfs = rvu_rsrc_free_count(&block->lf);
                if (!free_lfs)
                                 pcifunc, req->sso, block->lf.max);
                        return -EINVAL;
                }
-               mappedlfs = rvu_get_rsrc_mapcount(pfvf, block->type);
+               mappedlfs = rvu_get_rsrc_mapcount(pfvf, block->addr);
                free_lfs = rvu_rsrc_free_count(&block->lf);
                /* Check if additional resources are available */
                if (req->sso > mappedlfs &&
                                 pcifunc, req->sso, block->lf.max);
                        return -EINVAL;
                }
-               mappedlfs = rvu_get_rsrc_mapcount(pfvf, block->type);
+               mappedlfs = rvu_get_rsrc_mapcount(pfvf, block->addr);
                free_lfs = rvu_rsrc_free_count(&block->lf);
                if (req->ssow > mappedlfs &&
                    ((req->ssow - mappedlfs) > free_lfs))
                                 pcifunc, req->timlfs, block->lf.max);
                        return -EINVAL;
                }
-               mappedlfs = rvu_get_rsrc_mapcount(pfvf, block->type);
+               mappedlfs = rvu_get_rsrc_mapcount(pfvf, block->addr);
                free_lfs = rvu_rsrc_free_count(&block->lf);
                if (req->timlfs > mappedlfs &&
                    ((req->timlfs - mappedlfs) > free_lfs))
                                 pcifunc, req->cptlfs, block->lf.max);
                        return -EINVAL;
                }
-               mappedlfs = rvu_get_rsrc_mapcount(pfvf, block->type);
+               mappedlfs = rvu_get_rsrc_mapcount(pfvf, block->addr);
                free_lfs = rvu_rsrc_free_count(&block->lf);
                if (req->cptlfs > mappedlfs &&
                    ((req->cptlfs - mappedlfs) > free_lfs))
 
        block = &rvu->hw->block[blkaddr];
        num_lfs = rvu_get_rsrc_mapcount(rvu_get_pfvf(rvu, pcifunc),
-                                       block->type);
+                                       block->addr);
        if (!num_lfs)
                return;
        for (slot = 0; slot < num_lfs; slot++) {