Просмотр исходного кода

RP2040 Initiator mode: set initiator ID in selection phase

Petteri Aimonen 2 лет назад
Родитель
Сommit
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
     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);