| 1234567891011121314151617181920212223242526272829303132 |
- // 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);
- // 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();
|