joevt
8a1055ed1b
sc53c94: Add DBDMA support.
...
- For pdm/amic, real_dma_xfer is called when SCSI_DMA_Ctrl has the run bit set.
- For tnt/grandcentral, dma_wait is called when the DBDMA is started (run bit is set). It will call real_dma_xfer when the phase and sequence are DATA_IN/RCV_DATA or DATA_OUT/SEND_DATA.
- dma_wait and real_dma_xfer uses a one shot timer instead of a loop to continue doing DMA while also giving time to the CPU. This and the above changes handles the case where the DBDMA is started before setting up the transfer phase and sequence.
- dma_stop will stop the one shot timer when the DBDMA channel is stopped.
2024-04-03 19:19:42 -07:00
joevt
ff766b10eb
sc53c94: Add seq_id to sequence descriptor.
...
The seq_id can be used for logging the current command and step number.
2024-04-03 18:43:46 -07:00
joevt
1504bd2227
sc53c94: Move DATA_FIFO_MAX from header.
...
Headers shouldn't make defines that are not meant to be used outside the source file.
2024-04-03 18:11:07 -07:00
joevt
02a475e113
sc53c94: Remove duplicate bus_obj.
...
sc53c94 is a ScsiDevice which has its own bus_obj which is set by register_device.
2024-03-30 11:56:59 -07:00
joevt
e1e00c951b
sc53c94: Split real_dma_xfer.
...
Create real_dma_xfer_out and real_dma_xfer_in methods.
2024-03-14 08:01:07 -07:00
joevt
c14974d167
sc53c94: Init class fields.
2024-03-13 21:37:08 -07:00
joevt
f07de5401d
sc53c94: Add registers and comments.
2024-03-13 21:25:28 -07:00
Maxim Poliakovski
f5bb484226
sc53c94: fix interrupt reporting.
2024-02-19 15:30:20 +01:00
Maxim Poliakovski
bf278af950
scsidevice: add get_more_data() method.
...
It is required for supporting large data transfers split
into multiple chunks.
2023-12-10 00:19:44 +01:00
Maxim Poliakovski
58281520d3
Implement writes to SCSI Pseudo-DMA register.
2023-12-04 21:41:55 +01:00
Maxim Poliakovski
ae903082d8
amic: implement SCSI DRQ callback.
2023-12-04 21:41:55 +01:00
Maxim Poliakovski
94872b3ebb
Store SCSI bus object pointer during registration.
2023-11-24 19:48:07 +01:00
Maxim Poliakovski
9ae863d7c4
sc53c94: add is_dma_cmd member variable.
2023-11-24 19:48:07 +01:00
Mihai Parparita
35c86ad6bf
Clean up #includes
...
Result of running IWYU (https://include-what-you-use.org/ ) and
applying most of the suggestions about unncessary includes and
forward declarations.
Was motivated by observing that <thread> was being included in
ppcopcodes.cpp even though it was unused (found while researching
the use of threads), but seems generally good to help with build
times and correctness.
2023-11-03 00:33:47 -07:00
Maxim Poliakovski
a00b87790b
sc3c94: implement real DMA.
2022-11-07 12:34:55 +01:00
Maxim Poliakovski
ca5f81417f
sc53c94: refactor state machine.
2022-11-07 12:34:42 +01:00
Maxim Poliakovski
5a59b97257
Sc53C94: implement cycle completion commands.
2022-11-02 22:28:43 +01:00
Maxim Poliakovski
0c74ebbc45
scsi_bus: support status and message in.
2022-11-02 21:27:18 +01:00
Maxim Poliakovski
2865a611e7
Sc53C94: implement reading the FIFO register.
2022-11-02 21:19:31 +01:00
Maxim Poliakovski
c54c1cdb65
Sc53C94: improve status register.
2022-11-01 02:11:06 +01:00
Maxim Poliakovski
6ffe28a8a4
Implement SCSI Pseudo-DMA register on PDM.
2022-11-01 01:17:50 +01:00
Maxim Poliakovski
7ab44886c4
Sc53C94: implement information transfer command.
2022-11-01 01:17:50 +01:00
Maxim Poliakovski
fbfae98d6d
scsi_bus: packet data transfers.
2022-10-31 23:21:35 +01:00
Maxim Poliakovski
c7ceb9d6b9
sc53c94: fix setting internal transfer counter.
2022-10-31 23:21:35 +01:00
Maxim Poliakovski
a58c9b1a62
ScsiDevice: fix process_command() signature.
2022-10-27 14:07:20 +02:00
Maxim Poliakovski
eeb576a927
Improve ScsiDevice class.
2022-10-25 02:53:21 +02:00
Maxim Poliakovski
2dfc160e30
sc53c94: self-registration with the device registry.
2022-07-18 20:27:34 +02:00
Maxim Poliakovski
00093bdc95
sc53c94: support interrupts.
2022-02-06 01:50:54 +01:00
Maxim Poliakovski
7c53620a40
sc53c94: implement sequencer and some commands.
2022-02-06 01:50:54 +01:00
Maxim Poliakovski
dc34f282b7
53C94: support more registers and commands.
2022-01-24 22:55:49 +01:00
Maxim Poliakovski
5883524fb8
53C94: chip initialization and identification.
2022-01-22 04:37:52 +01:00