Mark Cave-Ayland
1b2e34ca2e
esp.c: move end of SCSI transfer check after TC adjustment in do_dma_pdma_cb()
...
Now it is possible to move the end of SCSI transfer check to after the TC
adjustment in do_dma_pdma_cb() when transferring data from the device
without triggering an assert() in the SCSI code. This brings this check in
line with all the others in esp_do_dma() and do_dma_pdma_cb().
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-36-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:27 +00:00
Mark Cave-Ayland
4460b86a04
esp.c: update esp_do_dma() bypass if async_len is zero to include non-zero transfer check
...
In the PDMA case the last transfer from the device to the FIFO has occurred
(async_len is zero) but esp_do_dma() is still being called to drain the
remaining FIFO contents.
The additional non-zero transfer check ensures that we still defer the SCSI
layer in the case where we are waiting for data for a TI command or a DMA
enable signal.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-35-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:27 +00:00
Mark Cave-Ayland
3c7f3c8b57
esp.c: copy logic for do_cmd transfers from do_dma_pdma_cb() to esp_do_dma()
...
This is so that PDMA transfers can be performend by esp_do_dma() as well as
do_dma_pdma_cb().
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-34-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:27 +00:00
Mark Cave-Ayland
19e9afb1a3
esp.c: copy PDMA logic for transfers to device from do_dma_pdma_cb() to esp_do_dma()
...
This is so that PDMA transfers can be performend by esp_do_dma() as well as
do_dma_pdma_cb().
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-33-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:27 +00:00
Mark Cave-Ayland
004826d03e
esp.c: rename esp_dma_done() to esp_dma_ti_check()
...
This is because a single DMA request can be transferred using multiple TI
commands, and so a TC equal to zero may not represent the completion of
the SCSI DMA command.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-32-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:27 +00:00
Mark Cave-Ayland
af74b3c15d
esp.c: move TC and FIFO check logic into esp_dma_done()
...
This helps simplify the existing implementation.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-31-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:27 +00:00
Mark Cave-Ayland
cb9881999d
esp.c: fix premature end of phase logic esp_command_complete
...
There are two cases here: the first is when the TI command underflows, in which
case we raise INTR_BS to indicate an early change of phase, and the second is
when the TI command overflows because the host requested a transfer for more
data than is available. In the latter case force TC to zero so that the TI
completion logic executes correctly.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-30-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:27 +00:00
Mark Cave-Ayland
e4e166c8ef
esp.c: consolidate async_len and TC == 0 checks in do_dma_pdma_cb() and esp_do_dma()
...
Ensure that the async_len checks for requesting data from the SCSI layer and
the TC == 0 checks to detect the end of the DMA transfer are consistent in both
do_dma_pdma_cb() and esp_do_dma(). In particular this involves adding the check
to see if the FIFO is at its low threshold since PDMA and mixed DMA and non-DMA
requests can leave data remaining in the FIFO.
At the same time update all the comments so that they are also consistent between
all similar code paths.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-29-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:27 +00:00
Mark Cave-Ayland
a79e767ab1
esp.c: update end of transfer logic at the end of esp_transfer_data()
...
Since esp_dma_done() is called in both cases, and ti_size cannot be zero
(otherwise esp_command_complete() would have been called instead), replace
the conditional logic with a single call to esp_dma_done().
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-28-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:27 +00:00
Mark Cave-Ayland
fe082b5475
esp.c: remove unneeded if() check in esp_transfer_data()
...
The following ti_cmd checks ensure that only DMA and non-DMA TI commmands will
can call into the esp_do_dma() and esp_do_nodma() callbacks.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-27-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:27 +00:00
Mark Cave-Ayland
81ed2ed3e8
esp.c: remove unaligned adjustment in do_dma_pdma_cb() to device path
...
With the latest changes this condition cannot occur anymore and so the logic
can be completely removed.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-26-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:27 +00:00
Mark Cave-Ayland
12486e4f6d
esp.c: remove TC adjustment in esp_do_dma() from device path
...
Now that the TC is updated for each PDMA access (rather than once the FIFO is
full) there is no need to adjust the TC at start of each DMA transfer if the
FIFO is not empty.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-25-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:27 +00:00
Mark Cave-Ayland
fabcba4966
esp.c: don't immediately raise INTR_BS if SCSI data needed in esp_do_dma()
...
In the case when more data is requested from the SCSI layer during a DMA data
transfer from a device, don't immediately fall through to the TC check logic.
Otherwise when TC is zero INTR_BS will be raised immediately rather than when
the next set of SCSI data is ready.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-24-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:27 +00:00
Mark Cave-Ayland
68ef41fb13
esp.c: ensure that the PDMA callback is called for every device read
...
Rather than wait for the FIFO to fill up before calling the PDMA callback, push
that logic directly into the from_device logic in do_dma_pdma_cb().
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-23-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:27 +00:00
Mark Cave-Ayland
c5bd505524
esp.c: update condition for esp_dma_done() in esp_do_dma() to device path
...
Ensure that esp_dma_done() is only called when TC is zero, which is currently
always the case for DMA transfers.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-22-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:27 +00:00
Mark Cave-Ayland
6b7b0030fb
esp.c: update condition for esp_dma_done() in esp_do_dma() from device path
...
No change to the condition itself, other than to clarify that esp_dma_done()
must be called when TC is zero.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-21-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:27 +00:00
Mark Cave-Ayland
27bd0cc044
esp.c: remove zero transfer size check from esp_do_dma()
...
The TI end of transfer interrupt only occurs when the TC reaches zero and is
not related to the SCSI layer transfer.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-20-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:23 +00:00
Mark Cave-Ayland
942ee6c83f
esp.c: don't clear RFLAGS register when DMA is complete
...
The internal state of the ESP sequencer is not affected when raising an interrupt
to indicate the end of a DMA transfer.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-19-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:23 +00:00
Mark Cave-Ayland
e7a661d117
esp.c: don't reset the TC and ESP_RSEQ state when executing a SCSI command
...
There is no need to manually reset these values as the ESP emulation now
correctly handles them within its existing logic.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-18-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:23 +00:00
Mark Cave-Ayland
a1ccceb9c4
esp.c: remove MacOS TI workaround that pads FIFO transfers to ESP_FIFO_SZ
...
This workaround is no longer required with the current code and so can be
removed.
[Note: whilst MacOS itself can boot correctly, removing this hack prevents
a bootable EMILE CDROM from working. This is caused by a separate bug which
will be fixed by a subsequent patch]
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-17-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:23 +00:00
Mark Cave-Ayland
f0a24eeed9
esp.c: remove another set of manual STAT_TC updates
...
Following on from the recent changes to when the TC is updated, it is now
possible to remove another set of manual STAT_TC updates so that its state
is now managed within esp_set_tc().
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-16-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:23 +00:00
Mark Cave-Ayland
abc139cda0
esp.c: introduce esp_set_phase() helper function
...
This function is used to set the current SCSI bus phase in the ESP_RSTAT register
without affecting any of flag bits.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-15-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:23 +00:00
Mark Cave-Ayland
a034765161
esp.c: decrement the TC during MESSAGE OUT and COMMAND phases
...
This is to ensure that STAT_TC is triggered during the right parts of the
transfer when it is controlled exclusively by the TC.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-14-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:23 +00:00
Mark Cave-Ayland
2572689bc8
esp.c: don't accumulate directly into cmdfifo
...
Instead accumulate in the real FIFO as done in real hardware, and then transfer
to cmdfifo when we're ready to process the MESSAGE OUT and COMMAND phase data.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-13-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:23 +00:00
Mark Cave-Ayland
5fd4de7604
esp.c: remove unused case from esp_pdma_read()
...
The do_cmd variable is only set for the MESSAGE OUT and COMMAND phases i.e.
those which involve transfers from the host to the SCSI bus, and so the unused
case can be removed.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-12-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:23 +00:00
Mark Cave-Ayland
f366622366
esp.c: move buffer and TC logic into separate to/from device paths in esp_do_dma()
...
The ultimate aim is to for esp_do_dma() behaviour to be determined by the SCSI
bus phase, in which case it is necessary to have separate to/from device paths.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-11-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:20 +00:00
Mark Cave-Ayland
0f2eb11071
esp.c: update TC check logic in do_dma_pdma_cb() to check for TC == 0
...
Invert the logic so that the end of DMA transfer check becomes one that checks
for TC == 0 in the from device path in do_dma_pdma_cb().
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-10-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:15 +00:00
Mark Cave-Ayland
f21fe39d9c
esp.c: move command execution logic to new esp_run_cmd() function
...
This helps to simplify esp_reg_write() and potentially allows for a 2-level
deep FIFO to be implemented in future.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-9-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:13 +00:00
Mark Cave-Ayland
0c5ae734c2
esp.c: start removal of manual STAT_TC setting when transfer counter reaches zero
...
This should be exclusively managed by esp_set_tc() rather than being manually
set in multiple places. Start by removing the occurrences exclusive to PDMA
and command completion which are those that can be currently removed without
affecting any test images.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-8-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:11 +00:00
Mark Cave-Ayland
c5d7df28ea
esp.c: update esp_set_tc() to set STAT_TC flag
...
This flag is set once the transfer counter counts down to zero.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-7-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:09 +00:00
Mark Cave-Ayland
1bcaf71b41
esp.c: move esp_select() to ESP selection commands from get_cmd()
...
Since the DREQ value depends upon the result of the selection process, add a
workaround to each esp_select() to manually assert DREQ durring the MESSAGE OUT
and COMMAND phases.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-6-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:06 +00:00
Mark Cave-Ayland
6fcae98b2c
esp.c: remove FIFO clear from esp_select()
...
The FIFO contents should not be affected by performing SCSI target selection.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-5-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:04 +00:00
Mark Cave-Ayland
49c60d1617
esp.c: add FIFO wraparound support to esp_fifo_pop_buf()
...
The fifo8_pop_buf() function returns a pointer to the FIFO buffer up to the
specified length. Since the FIFO buffer is modelled as an array then once
the FIFO wraps around, only the continuous portion of the buffer can be
returned.
In future the use of continuous and unaligned accesses will advance the
internal FIFO head pointer, so modify esp_fifo_pop_buf() to ensure that
any wraparound content is also returned up to the requested length.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-4-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:04 +00:00
Mark Cave-Ayland
cf40a5e420
esp.c: move existing request cancel check into esp_select()
...
Since get_cmd() can be called multiple times during a mixed FIFO/DMA request,
move the existing request cancel check into esp_select() which always occurs
at the start of new SCSI request.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-3-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:37:02 +00:00
Mark Cave-Ayland
f3ace75be8
esp.c: don't clear cmdfifo when esp_select() fails in get_cmd()
...
The FIFO contents should not be affected if the target selection fails.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Tested-by: Helge Deller <deller@gmx.de >
Tested-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240112125420.514425-2-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-02-13 19:36:59 +00:00
Richard Henderson
e41f1825b4
tcg/arm: Fix goto_tb for large translation blocks
...
Correct arithmetic for separating high and low
on a large negative number.
Cc: qemu-stable@nongnu.org
Fixes: 79ffece444
("tcg/arm: Implement direct branch for goto_tb")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1714
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru >
2024-02-13 07:42:45 -10:00
Richard Henderson
c0e688153f
tcg: Increase width of temp_subindex
...
We need values 0-3 for TCG_TYPE_I128 on 32-bit hosts.
Cc: qemu-stable@nongnu.org
Fixes: 43eef72f41
("tcg: Add temp allocation for TCGv_i128")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2159
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru >
Tested-by: Michael Tokarev <mjt@tls.msk.ru >
2024-02-13 07:42:45 -10:00
Peter Maydell
bc2e8b18fb
Merge tag 'hppa64-pull-request' of https://github.com/hdeller/qemu-hppa into staging
...
target/hppa: Enhancements and fixes
Some enhancements and fixes for the hppa target.
The major change is, that this patchset adds a new SeaBIOS-hppa firmware
which is built as 32- and 64-bit firmware.
The new 64-bit firmware is necessary to fully support 64-bit operating systems
(HP-UX, Linux, NetBSD,...).
# -----BEGIN PGP SIGNATURE-----
#
# iHUEABYKAB0WIQS86RI+GtKfB8BJu973ErUQojoPXwUCZcquAQAKCRD3ErUQojoP
# X9pjAQCVsWyuYlGCW2paIGVWKV0vsOpwetUrbhRtFUZGqZxb4AD9FbMsXRcCN/oq
# CotBPY/a8MEzIQcwYl5QbcI5nNW4ygs=
# =RA0B
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 12 Feb 2024 23:47:13 GMT
# gpg: using EDDSA key BCE9123E1AD29F07C049BBDEF712B510A23A0F5F
# gpg: Good signature from "Helge Deller <deller@gmx.de >" [unknown]
# gpg: aka "Helge Deller <deller@kernel.org >" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg: There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 4544 8228 2CD9 10DB EF3D 25F8 3E5F 3D04 A7A2 4603
# Subkey fingerprint: BCE9 123E 1AD2 9F07 C049 BBDE F712 B510 A23A 0F5F
* tag 'hppa64-pull-request' of https://github.com/hdeller/qemu-hppa :
hw/hppa/machine: Load 64-bit firmware on 64-bit machines
target/hppa: Update SeaBIOS-hppa to version 16
hw/net/tulip: add chip status register values
target/hppa: PDC_BTLB_INFO uses 32-bit ints
target/hppa: Allow read-access to PSW with rsm 0,reg instruction
lasi: Add reset I/O ports for LASI audio and FDC
target/hppa: Implement do_transaction_failed handler for I/O errors
lasi: allow access to LAN MAC address registers
hw/pci-host/astro: Implement Hard Fail and Soft Fail mode
hw/pci-host/astro: Avoid aborting on access failure
target/hppa: Add "diag 0x101" for console output support
disas/hppa: Add disassembly for qemu specific instructions
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2024-02-13 13:56:46 +00:00
Peter Maydell
3971462c35
Merge tag 'pull-trivial-patches' of https://gitlab.com/mjt0k/qemu into staging
...
trivial patches for 2024-02-13
# -----BEGIN PGP SIGNATURE-----
#
# iQFDBAABCAAtFiEEe3O61ovnosKJMUsicBtPaxppPlkFAmXLIcgPHG1qdEB0bHMu
# bXNrLnJ1AAoJEHAbT2saaT5Z2lMIAKBuoLX48bbaFsU3dHzPKtB3kVbBpsWJgkGd
# EovqkDTEDiX3+bvPkosUUkuZzRF3STTZx5jSQ5iKHYtwQ6ZnHOLALe/L6JCOHIs2
# DMeet0gacwB5sBDfXJAPDDETDLwaYv3MlQrxb2ok9ouDR4EJXFs8K7444BilhNHt
# nLE+Xtfm7oQBMgzivHSN6/6Y4DTU6mFLt6o+772EVfu6wrI07kOGZ1s/VCeLhqyZ
# 6gppVAx5nbBAryndi6lVvqfo+1mReAIKpreslWgsBb5H1IpXKimG1wd7mrqHFpva
# OLmBuNySe0plvjIkGKM72rPR15MPn7UmHNmnyq6qFzVjLetV2i0=
# =f4L7
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 13 Feb 2024 08:01:12 GMT
# gpg: using RSA key 7B73BAD68BE7A2C289314B22701B4F6B1A693E59
# gpg: issuer "mjt@tls.msk.ru "
# gpg: Good signature from "Michael Tokarev <mjt@tls.msk.ru >" [full]
# gpg: aka "Michael Tokarev <mjt@corpit.ru >" [full]
# gpg: aka "Michael Tokarev <mjt@debian.org >" [full]
# Primary key fingerprint: 6EE1 95D1 886E 8FFB 810D 4324 457C E0A0 8044 65C5
# Subkey fingerprint: 7B73 BAD6 8BE7 A2C2 8931 4B22 701B 4F6B 1A69 3E59
* tag 'pull-trivial-patches' of https://gitlab.com/mjt0k/qemu :
monitor/target: Include missing 'exec/memory.h' header
cpu-target: Include missing 'exec/memory.h' header
system: Move memory_ldst.c.inc to system
qemu-options.hx: Add zoom-to-fit to option summary for gtk
qemu-options.hx: document that tftp=dir is readonly
iothread: Simplify expression in qemu_in_iothread()
qemu-nbd: mention --tls-hostname option in qemu-nbd --help
MAINTAINERS: Cover qapi/stats.json
MAINTAINERS: Cover qapi/cxl.json
hw/smbios: Fix port connector option validation
hw/smbios: Fix OEM strings table option validation
hw/arm/smmuv3: Consolidate the use of device_class_set_parent_realize()
hw/intc/s390_flic: Consolidate the use of device_class_set_parent_realize()
hw/isa/pc87312: Consolidate the use of device_class_set_parent_realize()
hw/isa/vt82c686: Consolidate the use of device_class_set_parent_realize()
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2024-02-13 13:56:29 +00:00
Peter Maydell
61e7a0d27c
Merge tag 'pull-qapi-2024-02-12' of https://repo.or.cz/qemu/armbru into staging
...
QAPI patches patches for 2024-02-12
# -----BEGIN PGP SIGNATURE-----
#
# iQJGBAABCAAwFiEENUvIs9frKmtoZ05fOHC0AOuRhlMFAmXJ4PsSHGFybWJydUBy
# ZWRoYXQuY29tAAoJEDhwtADrkYZTDwsP/iEdmZmjoxMedTzec+GGl5QxfMkqLn14
# eX2jXtzLGZMjGMh4lvMaAdn0AJ3VnBOqxly14sMK6TMWGZkNKJpKF+2Cj8IKte1o
# MlpS1N/7rZxew+B9HkulhS+6UFB3Jndsflm2ot4g+rRjohJCw0v0GapEqjQg6CKp
# efJhiPuBSImm2MSx+n4dj8gkcFOMrgo6oc2ZpN0ypvGb4mupPpnNj6v12yZL8FUM
# Enwsk+pBLQWoYxI9MFDGc0gW9ZBlEdP/nVq/PbglD06Urc241AHGYqT7XLT0oHLl
# 6NA4v3N4GPdSe6oJdOHDFVR+/uPKiiyrseTdYTSGgAN8gcRtHam4WWhqSDIN3Afl
# y41A9ZKkW51TpdszQ6wCdrgbTH5z6K5vnwWfVTwIgdI0mrDcAGWnc2Yr7m6c3fS8
# /Vz00J7OC0P1nXh0IeRxXExXSmaGUUgS3T/KBXPYr0PQPe7Qd+1eTQN6LaliEMRH
# dRpXQabjLmztMhc5VXCv8ihwa7mNVaEn++uRrdKoWOvIQEp0ZeZfxCzp+/2mGPJ0
# YKJc7Ja260h2Y00/Zu2XiwjdzgG+h+QuJO/3OFsZIV5ftFqSBRMCHiGEfANHidld
# Cpo0efeWWTPdV8BQOirGGr0qtDTmgFMFCZTJMsI/g0m9sMCv0WbTtmWNThwaI3uD
# MKnEGG+KX7vD
# =nhrQ
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 12 Feb 2024 09:12:27 GMT
# gpg: using RSA key 354BC8B3D7EB2A6B68674E5F3870B400EB918653
# gpg: issuer "armbru@redhat.com "
# gpg: Good signature from "Markus Armbruster <armbru@redhat.com >" [full]
# gpg: aka "Markus Armbruster <armbru@pond.sub.org >" [full]
# Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653
* tag 'pull-qapi-2024-02-12' of https://repo.or.cz/qemu/armbru :
MAINTAINERS: Cover qapi/stats.json
MAINTAINERS: Cover qapi/cxl.json
qapi/migration: Add missing tls-authz documentation
qapi: Add missing union tag documentation
qapi: Move @String out of common.json to discourage reuse
qapi: Improve documentation of file descriptor socket addresses
qapi: Plug trivial documentation holes around former simple unions
qapi/dump: Clean up documentation of DumpGuestMemoryCapability
qapi/yank: Clean up documentaion of yank
qga/qapi-schema: Plug trivial documentation holes
qga/qapi-schema: Clean up documentation of guest-set-vcpus
qga/qapi-schema: Clean up documentation of guest-set-memory-blocks
qapi: Require member documentation (with loophole)
sphinx/qapidoc: Drop code to generate doc for simple union tag
qapi: Indent tagged doc comment sections properly
qapi/block-core: Fix BlockLatencyHistogramInfo doc markup
docs/devel/qapi-code-gen: Tweak doc comment whitespace
docs/devel/qapi-code-gen: Normalize version refs x.y.0 to just x.y
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2024-02-13 10:54:59 +00:00
Philippe Mathieu-Daudé
f6e33708bb
monitor/target: Include missing 'exec/memory.h' header
...
Include "exec/memory.h" in order to avoid:
monitor/hmp-cmds-target.c:263:10: error: call to undeclared function 'memory_region_is_ram';
ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
if (!memory_region_is_ram(mrs.mr) && !memory_region_is_romd(mrs.mr)) {
^
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru >
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru >
2024-02-13 10:59:25 +03:00
Philippe Mathieu-Daudé
5f8d88bdeb
cpu-target: Include missing 'exec/memory.h' header
...
Include "exec/memory.h" in order to avoid:
cpu-target.c:201:50: error: use of undeclared identifier 'TYPE_MEMORY_REGION'
DEFINE_PROP_LINK("memory", CPUState, memory, TYPE_MEMORY_REGION,
^
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru >
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru >
2024-02-13 10:59:25 +03:00
BALATON Zoltan
0ccebcdcf4
system: Move memory_ldst.c.inc to system
...
This file is only used by system/physmem.c so move them together.
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru >
2024-02-13 10:59:25 +03:00
BALATON Zoltan
e26c9402c2
qemu-options.hx: Add zoom-to-fit to option summary for gtk
...
The detailed help lists zoom-to-fit as valid option but it is missing
from the short option summary. Add it there too.
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu >
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru >
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru >
2024-02-13 10:59:25 +03:00
Michael Tokarev
b30fa6b81a
qemu-options.hx: document that tftp=dir is readonly
...
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1286
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru >
2024-02-13 10:59:25 +03:00
Kevin Wolf
694226410b
iothread: Simplify expression in qemu_in_iothread()
...
'a == b ? false : true' is a rather convoluted way of writing 'a != b'.
Use the more obvious way to write it.
Signed-off-by: Kevin Wolf <kwolf@redhat.com >
Reviewed-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru >
2024-02-13 10:59:25 +03:00
Michael Tokarev
d81b797ca2
qemu-nbd: mention --tls-hostname option in qemu-nbd --help
...
This option was not documented.
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1240
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com >
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru >
2024-02-13 10:59:25 +03:00
Markus Armbruster
967fbcc453
MAINTAINERS: Cover qapi/stats.json
...
Commit aa09b3d5f8
(stats: Move QMP commands from monitor/ to stats/)
created section Stats, but neglected to add qapi/stats.json to it.
Fix that.
Signed-off-by: Markus Armbruster <armbru@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru >
2024-02-13 10:59:25 +03:00
Markus Armbruster
341d698c8d
MAINTAINERS: Cover qapi/cxl.json
...
Commit 415442a1b4
(hw/mem/cxl_type3: Add CXL RAS Error Injection
Support.) created qapi/cxl.json without adding it to MAINTAINERS. Fix
that.
Cc: Ben Widawsky <ben.widawsky@intel.com >
Cc: Jonathan Cameron <jonathan.cameron@huawei.com >
Cc: Fan Ni <fan.ni@samsung.com >
Signed-off-by: Markus Armbruster <armbru@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru >
2024-02-13 10:59:25 +03:00
Akihiko Odaki
196578c9d0
hw/smbios: Fix port connector option validation
...
qemu_smbios_type8_opts did not have the list terminator and that
resulted in out-of-bound memory access. It also needs to have an element
for the type option.
Cc: qemu-stable@nongnu.org
Fixes: fd8caa253c
("hw/smbios: support for type 8 (port connector)")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com >
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru >
Reviewed-by: Ani Sinha <anisinha@redhat.com >
Reviewed-by: Michael S. Tsirkin <mst@redhat.com >
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru >
2024-02-13 10:59:25 +03:00