mbox

[PULL,00/88] qemu-sparc queue 20240213

Message ID 20240213194052.1162753-1-mark.cave-ayland@ilande.co.uk
State New
Headers show

Pull-request

https://github.com/mcayland/qemu.git tags/qemu-sparc-20240213

Message

Mark Cave-Ayland Feb. 13, 2024, 7:39 p.m. UTC
The following changes since commit bc2e8b18fba33f30f25b7c2d74328493c0a2231d:

  Merge tag 'hppa64-pull-request' of https://github.com/hdeller/qemu-hppa into staging (2024-02-13 13:56:46 +0000)

are available in the Git repository at:

  https://github.com/mcayland/qemu.git tags/qemu-sparc-20240213

for you to fetch changes up to 78d68f312aec905edcb1dc5549a2c3a6f716605a:

  esp.c: add my copyright to the file (2024-02-13 19:37:28 +0000)

----------------------------------------------------------------
qemu-sparc queue
- This contains the rework of the ESP controller as agreed with Paolo

----------------------------------------------------------------
Mark Cave-Ayland (88):
      esp.c: don't clear cmdfifo when esp_select() fails in get_cmd()
      esp.c: move existing request cancel check into esp_select()
      esp.c: add FIFO wraparound support to esp_fifo_pop_buf()
      esp.c: remove FIFO clear from esp_select()
      esp.c: move esp_select() to ESP selection commands from get_cmd()
      esp.c: update esp_set_tc() to set STAT_TC flag
      esp.c: start removal of manual STAT_TC setting when transfer counter reaches zero
      esp.c: move command execution logic to new esp_run_cmd() function
      esp.c: update TC check logic in do_dma_pdma_cb() to check for TC == 0
      esp.c: move buffer and TC logic into separate to/from device paths in esp_do_dma()
      esp.c: remove unused case from esp_pdma_read()
      esp.c: don't accumulate directly into cmdfifo
      esp.c: decrement the TC during MESSAGE OUT and COMMAND phases
      esp.c: introduce esp_set_phase() helper function
      esp.c: remove another set of manual STAT_TC updates
      esp.c: remove MacOS TI workaround that pads FIFO transfers to ESP_FIFO_SZ
      esp.c: don't reset the TC and ESP_RSEQ state when executing a SCSI command
      esp.c: don't clear RFLAGS register when DMA is complete
      esp.c: remove zero transfer size check from esp_do_dma()
      esp.c: update condition for esp_dma_done() in esp_do_dma() from device path
      esp.c: update condition for esp_dma_done() in esp_do_dma() to device path
      esp.c: ensure that the PDMA callback is called for every device read
      esp.c: don't immediately raise INTR_BS if SCSI data needed in esp_do_dma()
      esp.c: remove TC adjustment in esp_do_dma() from device path
      esp.c: remove unaligned adjustment in do_dma_pdma_cb() to device path
      esp.c: remove unneeded if() check in esp_transfer_data()
      esp.c: update end of transfer logic at the end of esp_transfer_data()
      esp.c: consolidate async_len and TC == 0 checks in do_dma_pdma_cb() and esp_do_dma()
      esp.c: fix premature end of phase logic esp_command_complete
      esp.c: move TC and FIFO check logic into esp_dma_done()
      esp.c: rename esp_dma_done() to esp_dma_ti_check()
      esp.c: copy PDMA logic for transfers to device from do_dma_pdma_cb() to esp_do_dma()
      esp.c: copy logic for do_cmd transfers from do_dma_pdma_cb() to esp_do_dma()
      esp.c: update esp_do_dma() bypass if async_len is zero to include non-zero transfer check
      esp.c: move end of SCSI transfer check after TC adjustment in do_dma_pdma_cb()
      esp.c: remove s_without_satn_pdma_cb() PDMA callback
      esp.c: introduce esp_get_phase() function
      esp.c: convert esp_do_dma() to switch statement based upon SCSI phase
      esp.c: convert do_dma_pdma_db() to switch statement based upon SCSI phase
      esp.c: convert esp_do_nodma() to switch statement based upon SCSI phase
      esp.c: convert esp_do_dma() do_cmd path to check for SCSI phase instead
      esp.c: convert do_dma_pdma_cb() do_cmd path to check for SCSI phase instead
      esp.c: convert esp_do_nodma() do_cmd path to check for SCSI phase instead
      esp.c: convert esp_reg_write() do_cmd path to check for SCSI phase instead
      esp.c: remove do_cmd from ESPState
      esp.c: untangle MESSAGE OUT and COMMAND phase logic in esp_do_dma()
      esp.c: untangle MESSAGE OUT and COMMAND phase logic in do_dma_pdma_cb()
      esp.c: untangle MESSAGE OUT and COMMAND phase logic in esp_do_nodma()
      esp.c: move CMD_SELATN end of message phase detection to esp_do_dma() and do_dma_pdma_cb()
      esp.c: move CMD_TI end of message phase detection to esp_do_dma() and do_dma_pdma_cb()
      esp.c: don't use get_cmd() for CMD_SEL DMA commands
      esp.c: move CMD_SELATNS end of command logic to esp_do_dma() and do_dma_pdma_cb()
      esp.c: replace do_dma_pdma_cb() with esp_do_dma()
      esp.c: move CMD_ICCS command logic to esp_do_dma()
      esp.c: always use esp_do_dma() in pdma_cb()
      esp.c: remove unused PDMA callback implementation
      esp.c: rename data_in_ready to to data_ready
      esp.c: separate logic based upon ESP command in esp_command_complete()
      esp.c: separate logic based upon ESP command in esp_transfer_data()
      esp.c: use deferred interrupts for both DATA IN and DATA OUT phases
      esp.c: remove DATA IN phase logic when reading from FIFO
      esp.c: zero command register when TI command terminates due to phase change
      esp.c: remove unneeded ti_cmd field
      esp.c: don't raise INTR_BS interrupt in DATA IN phase until TI command issued
      esp.c: move non-DMA TI logic to separate esp_nodma_ti_dataout() function
      esp.c: process non-DMA FIFO writes in esp_do_nodma()
      esp.c: replace get_cmd() with esp_do_nodma()
      esp.c: move write_response() non-DMA logic to esp_do_nodma()
      esp.c: consolidate end of command sequence after ICCS command
      esp.c: ensure that STAT_INT is cleared when reading ESP_RINTR
      esp.c: don't clear the SCSI phase when reading ESP_RINTR
      esp.c: handle TC underflow for DMA SCSI requests
      esp.c: remove restriction on FIFO read access when DMA memory routines defined
      esp.c: handle non-DMA FIFO writes used to terminate DMA commands
      esp.c: improve ESP_RSEQ logic consolidation
      esp.c: only transfer non-DMA COMMAND phase data for specific commands
      esp.c: only transfer non-DMA MESSAGE OUT phase data for specific commands
      esp.c: consolidate DMA and PDMA logic in DATA OUT phase
      esp.c: consolidate DMA and PDMA logic in DATA IN phase
      esp.c: consolidate DMA and PDMA logic in MESSAGE OUT phase
      esp.c: remove redundant n variable in PDMA COMMAND phase
      esp.c: consolidate DMA and PDMA logic in STATUS and MESSAGE IN phases
      esp.c: replace n variable with len in esp_do_nodma()
      esp.c: implement DMA Transfer Pad command for DATA phases
      esp.c: rename irq_data IRQ to drq_irq
      esp.c: keep track of the DRQ state during DMA
      esp.c: switch TypeInfo registration to use DEFINE_TYPES() macro
      esp.c: add my copyright to the file

 hw/scsi/esp.c         | 1371 ++++++++++++++++++++++++++-----------------------
 hw/scsi/trace-events  |    1 +
 include/hw/scsi/esp.h |   18 +-
 3 files changed, 727 insertions(+), 663 deletions(-)

Comments

Peter Maydell Feb. 14, 2024, 12:59 p.m. UTC | #1
On Tue, 13 Feb 2024 at 19:41, Mark Cave-Ayland
<mark.cave-ayland@ilande.co.uk> wrote:
>
> The following changes since commit bc2e8b18fba33f30f25b7c2d74328493c0a2231d:
>
>   Merge tag 'hppa64-pull-request' of https://github.com/hdeller/qemu-hppa into staging (2024-02-13 13:56:46 +0000)
>
> are available in the Git repository at:
>
>   https://github.com/mcayland/qemu.git tags/qemu-sparc-20240213
>
> for you to fetch changes up to 78d68f312aec905edcb1dc5549a2c3a6f716605a:
>
>   esp.c: add my copyright to the file (2024-02-13 19:37:28 +0000)
>
> ----------------------------------------------------------------
> qemu-sparc queue
> - This contains the rework of the ESP controller as agreed with Paolo


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/9.0
for any user-visible changes.

-- PMM