struct ta_xgmi_shared_memory *xgmi_cmd;
        int ret;
 
-       if (!psp->adev->psp.ta_fw)
+       if (!psp->adev->psp.ta_fw ||
+           !psp->adev->psp.ta_xgmi_ucode_size ||
+           !psp->adev->psp.ta_xgmi_start_addr)
                return -ENOENT;
 
        if (!psp->xgmi_context.initialized) {
 {
        int ret;
 
+       if (!psp->adev->psp.ta_ras_ucode_size ||
+           !psp->adev->psp.ta_ras_start_addr) {
+               dev_warn(psp->adev->dev, "RAS: ras ta ucode is not available\n");
+               return 0;
+       }
+
        if (!psp->ras.ras_initialized) {
                ret = psp_ras_init_shared_buf(psp);
                if (ret)
 {
        int ret;
 
+       if (!psp->adev->psp.ta_hdcp_ucode_size ||
+           !psp->adev->psp.ta_hdcp_start_addr) {
+               dev_warn(psp->adev->dev, "HDCP: hdcp ta ucode is not available\n");
+               return 0;
+       }
+
        if (!psp->hdcp_context.hdcp_initialized) {
                ret = psp_hdcp_init_shared_buf(psp);
                if (ret)
 {
        int ret;
 
+       if (!psp->adev->psp.ta_dtm_ucode_size ||
+           !psp->adev->psp.ta_dtm_start_addr) {
+               dev_warn(psp->adev->dev, "DTM: dtm ta ucode is not available\n");
+               return 0;
+       }
+
        if (!psp->dtm_context.dtm_initialized) {
                ret = psp_dtm_init_shared_buf(psp);
                if (ret)