فهرست منبع

RP2040 Initiator mode: set initiator ID in selection phase

Petteri Aimonen 2 سال پیش
والد
کامیت
77ae70d836
1فایلهای تغییر یافته به همراه5 افزوده شده و 2 حذف شده
  1. 5 2
      lib/BlueSCSI_platform_RP2040/scsiHostPhy.cpp

+ 5 - 2
lib/BlueSCSI_platform_RP2040/scsiHostPhy.cpp

@@ -51,12 +51,15 @@ bool scsiHostPhySelect(int target_id)
         }
         }
     }
     }
 
 
+    // Choose initiator ID different than target ID
+    uint8_t initiator_id = (target_id == 7) ? 0 : 7;
+
     // Selection phase
     // Selection phase
     scsiLogInitiatorPhaseChange(SELECTION);
     scsiLogInitiatorPhaseChange(SELECTION);
-    debuglog("------ SELECTING ", target_id);
+    debuglog("------ SELECTING ", target_id, " with initiator ID ", (int)initiator_id);
     SCSI_OUT(SEL, 1);
     SCSI_OUT(SEL, 1);
     delayMicroseconds(5);
     delayMicroseconds(5);
-    SCSI_OUT_DATA(1 << target_id);
+    SCSI_OUT_DATA((1 << target_id) | (1 << initiator_id));
     delayMicroseconds(5);
     delayMicroseconds(5);
     SCSI_OUT(BSY, 0);
     SCSI_OUT(BSY, 0);