| 12345678910111213141516171819202122232425262728293031323334 |
- // Host side SCSI physical interface.
- // Used in initiator to interface to an SCSI drive.
- #pragma once
- #include <stdint.h>
- #include <stdbool.h>
- // Request to stop activity and reset the bus
- extern volatile int g_scsiHostPhyReset;
- // Release bus and pulse RST signal, initialize PHY to host mode.
- void scsiHostPhyReset(void);
- // Select a device, id 0-7.
- // Returns true if the target answers to selection request.
- bool scsiHostPhySelect(int target_id, int initiator_id);
- // Read the current communication phase as signaled by the target
- // Matches SCSI_PHASE enumeration from scsi.h.
- int scsiHostPhyGetPhase();
- // Returns true if the device has asserted REQ signal, i.e. data waiting
- bool scsiHostRequestWaiting();
- // Blocking data transfer
- // These return the actual number of bytes transferred.
- uint32_t scsiHostWrite(const uint8_t *data, uint32_t count);
- uint32_t scsiHostRead(uint8_t *data, uint32_t count);
- // Release all bus signals
- void scsiHostPhyRelease();
- void setInitiatorModeParityCheck(bool checkParity);
|