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(-)
