if (alloc_id != IWL_FW_INI_ALLOCATION_ID_DBGC1)
                        return -EIO;
                num_frags = 1;
+       } else if (fwrt->trans->trans_cfg->device_family < IWL_DEVICE_FAMILY_BZ &&
+                          alloc_id > IWL_FW_INI_ALLOCATION_ID_DBGC3) {
+               return -EIO;
        }
 
        remain_pages = DIV_ROUND_UP(le32_to_cpu(fw_mon_cfg->req_size),
        dram_info->second_word = cpu_to_le32(DRAM_INFO_SECOND_MAGIC_WORD);
 
        for (i = IWL_FW_INI_ALLOCATION_ID_DBGC1;
-            i <= IWL_FW_INI_ALLOCATION_ID_DBGC3; i++) {
+            i < IWL_FW_INI_ALLOCATION_NUM; i++) {
                ret = iwl_dbg_tlv_update_dram(fwrt, i, dram_info);
                if (!ret)
                        dram_alloc = true;