Quellcode durchsuchen

RP2040 Initiator mode: set initiator ID in selection phase

Petteri Aimonen vor 2 Jahren
Ursprung
Commit
77ae70d836
1 geänderte Dateien mit 5 neuen und 2 gelöschten Zeilen
  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
     scsiLogInitiatorPhaseChange(SELECTION);
-    debuglog("------ SELECTING ", target_id);
+    debuglog("------ SELECTING ", target_id, " with initiator ID ", (int)initiator_id);
     SCSI_OUT(SEL, 1);
     delayMicroseconds(5);
-    SCSI_OUT_DATA(1 << target_id);
+    SCSI_OUT_DATA((1 << target_id) | (1 << initiator_id));
     delayMicroseconds(5);
     SCSI_OUT(BSY, 0);