#include "intel_pxp_tee.h"
 #include "intel_pxp_types.h"
 
+static bool
+is_fw_err_platform_config(u32 type)
+{
+       switch (type) {
+       case PXP_STATUS_ERROR_API_VERSION:
+       case PXP_STATUS_PLATFCONFIG_KF1_NOVERIF:
+       case PXP_STATUS_PLATFCONFIG_KF1_BAD:
+               return true;
+       default:
+               break;
+       }
+       return false;
+}
+
+static const char *
+fw_err_to_string(u32 type)
+{
+       switch (type) {
+       case PXP_STATUS_ERROR_API_VERSION:
+               return "ERR_API_VERSION";
+       case PXP_STATUS_NOT_READY:
+               return "ERR_NOT_READY";
+       case PXP_STATUS_PLATFCONFIG_KF1_NOVERIF:
+       case PXP_STATUS_PLATFCONFIG_KF1_BAD:
+               return "ERR_PLATFORM_CONFIG";
+       default:
+               break;
+       }
+       return NULL;
+}
+
 static int intel_pxp_tee_io_message(struct intel_pxp *pxp,
                                    void *msg_in, u32 msg_in_size,
                                    void *msg_out, u32 msg_out_max_size,
                                       &msg_out, sizeof(msg_out),
                                       NULL);
 
-       if (ret)
-               drm_err(&i915->drm, "Failed to send tee msg ret=[%d]\n", ret);
-       else if (msg_out.header.status == PXP_STATUS_ERROR_API_VERSION)
-               drm_dbg(&i915->drm, "PXP firmware version unsupported, requested: "
-                       "CMD-ID-[0x%08x] on API-Ver-[0x%08x]\n",
-                       msg_in.header.command_id, msg_in.header.api_version);
-       else if (msg_out.header.status != 0x0)
-               drm_warn(&i915->drm, "PXP firmware failed arb session init request ret=[0x%08x]\n",
-                        msg_out.header.status);
+       if (ret) {
+               drm_err(&i915->drm, "Failed to send tee msg init arb session, ret=[%d]\n", ret);
+       } else if (msg_out.header.status != 0) {
+               if (is_fw_err_platform_config(msg_out.header.status)) {
+                       drm_info_once(&i915->drm,
+                                     "PXP init-arb-session-%d failed due to BIOS/SOC:0x%08x:%s\n",
+                                     arb_session_id, msg_out.header.status,
+                                     fw_err_to_string(msg_out.header.status));
+               } else {
+                       drm_dbg(&i915->drm, "PXP init-arb-session--%d failed 0x%08x:%st:\n",
+                               arb_session_id, msg_out.header.status,
+                               fw_err_to_string(msg_out.header.status));
+                       drm_dbg(&i915->drm, "     cmd-detail: ID=[0x%08x],API-Ver-[0x%08x]\n",
+                               msg_in.header.command_id, msg_in.header.api_version);
+               }
+       }
 
        return ret;
 }
        if ((ret || msg_out.header.status != 0x0) && ++trials < 3)
                goto try_again;
 
-       if (ret)
-               drm_err(&i915->drm, "Failed to send tee msg for inv-stream-key-%d, ret=[%d]\n",
+       if (ret) {
+               drm_err(&i915->drm, "Failed to send tee msg for inv-stream-key-%u, ret=[%d]\n",
                        session_id, ret);
-       else if (msg_out.header.status != 0x0)
-               drm_warn(&i915->drm, "PXP firmware failed inv-stream-key-%d with status 0x%08x\n",
-                        session_id, msg_out.header.status);
+       } else if (msg_out.header.status != 0) {
+               if (is_fw_err_platform_config(msg_out.header.status)) {
+                       drm_info_once(&i915->drm,
+                                     "PXP inv-stream-key-%u failed due to BIOS/SOC :0x%08x:%s\n",
+                                     session_id, msg_out.header.status,
+                                     fw_err_to_string(msg_out.header.status));
+               } else {
+                       drm_dbg(&i915->drm, "PXP inv-stream-key-%u failed 0x%08x:%s:\n",
+                               session_id, msg_out.header.status,
+                               fw_err_to_string(msg_out.header.status));
+                       drm_dbg(&i915->drm, "     cmd-detail: ID=[0x%08x],API-Ver-[0x%08x]\n",
+                               msg_in.header.command_id, msg_in.header.api_version);
+               }
+       }
 }