{
        int hw_mode = 0;
 
-       hw_mode = (1 << MODE_BB_A0);
+       hw_mode = (1 << MODE_BB_B0);
 
        switch (p_hwfn->cdev->num_ports_in_engines) {
        case 1:
 }
 
 /* Setup bar access */
-static int qed_hw_hwfn_prepare(struct qed_hwfn *p_hwfn)
+static void qed_hw_hwfn_prepare(struct qed_hwfn *p_hwfn)
 {
-       int rc;
-
-       /* Allocate PTT pool */
-       rc = qed_ptt_pool_alloc(p_hwfn);
-       if (rc)
-               return rc;
-
-       /* Allocate the main PTT */
-       p_hwfn->p_main_ptt = qed_get_reserved_ptt(p_hwfn, RESERVED_PTT_MAIN);
-
        /* clear indirect access */
        qed_wr(p_hwfn, p_hwfn->p_main_ptt, PGLUE_B_REG_PGL_ADDR_88_F0, 0);
        qed_wr(p_hwfn, p_hwfn->p_main_ptt, PGLUE_B_REG_PGL_ADDR_8C_F0, 0);
        /* enable internal target-read */
        qed_wr(p_hwfn, p_hwfn->p_main_ptt,
               PGLUE_B_REG_INTERNAL_PFID_ENABLE_TARGET_READ, 1);
-
-       return 0;
 }
 
 static void get_function_id(struct qed_hwfn *p_hwfn)
        return rc;
 }
 
-static void qed_get_dev_info(struct qed_dev *cdev)
+static int qed_get_dev_info(struct qed_dev *cdev)
 {
        struct qed_hwfn *p_hwfn = QED_LEADING_HWFN(cdev);
        u32 tmp;
                "Chip details - Num: %04x Rev: %04x Bond id: %04x Metal: %04x\n",
                cdev->chip_num, cdev->chip_rev,
                cdev->chip_bond_id, cdev->chip_metal);
+
+       if (QED_IS_BB(cdev) && CHIP_REV_IS_A0(cdev)) {
+               DP_NOTICE(cdev->hwfns,
+                         "The chip type/rev (BB A0) is not supported!\n");
+               return -EINVAL;
+       }
+
+       return 0;
 }
 
 static int qed_hw_prepare_single(struct qed_hwfn *p_hwfn,
 
        get_function_id(p_hwfn);
 
-       rc = qed_hw_hwfn_prepare(p_hwfn);
+       /* Allocate PTT pool */
+       rc = qed_ptt_pool_alloc(p_hwfn);
        if (rc) {
                DP_NOTICE(p_hwfn, "Failed to prepare hwfn's hw\n");
                goto err0;
        }
 
+       /* Allocate the main PTT */
+       p_hwfn->p_main_ptt = qed_get_reserved_ptt(p_hwfn, RESERVED_PTT_MAIN);
+
        /* First hwfn learns basic information, e.g., number of hwfns */
-       if (!p_hwfn->my_id)
-               qed_get_dev_info(p_hwfn->cdev);
+       if (!p_hwfn->my_id) {
+               rc = qed_get_dev_info(p_hwfn->cdev);
+               if (rc != 0)
+                       goto err1;
+       }
+
+       qed_hw_hwfn_prepare(p_hwfn);
 
        /* Initialize MCP structure */
        rc = qed_mcp_cmd_init(p_hwfn, p_hwfn->p_main_ptt);