[PATCH v3 01/17] esp.c: move esp_fifo_pop_buf() internals to new esp_fifo8_pop_buf() function

2024-03-24 Thread Mark Cave-Ayland
Update esp_fifo_pop_buf() to be a simple wrapper onto the new esp_fifo8_pop_buf() function. Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c index 590ff99744..1b7b118a0b 100644 --- a/hw

[PATCH v3 13/17] esp.c: move esp_set_phase() and esp_get_phase() towards the beginning of the file

2024-03-24 Thread Mark Cave-Ayland
This allows these functions to be used earlier in the file without needing a separate forward declaration. Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daudé --- hw/scsi/esp.c | 36 ++-- 1 file changed, 18 insertions(+), 18 deletions(-) diff

[PATCH v3 12/17] esp.c: prevent cmdfifo overflow in esp_cdb_ready()

2024-03-24 Thread Mark Cave-Ayland
end of the FIFO data buffer. Add an extra check to fifo8_peek_buf() to ensure that if the cmdfifo has wrapped internally then esp_cdb_ready() will exit rather than allow scsi_cdb_length() to access data outside the cmdfifo data buffer. Reported-by: Chuhong Yuan Signed-off-by: Mark Cave-Ayland

[PATCH v3 03/17] esp.c: replace esp_fifo_pop_buf() with esp_fifo8_pop_buf() in do_message_phase()

2024-03-24 Thread Mark Cave-Ayland
The aim is to restrict the esp_fifo_*() functions so that they only operate on the hardware FIFO. When reading from cmdfifo in do_message_phase() use the underlying esp_fifo8_pop_buf() function directly. Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 2 +- 1 file changed, 1 insertion(+), 1

[PATCH v3 04/17] esp.c: replace cmdfifo use of esp_fifo_pop() in do_message_phase()

2024-03-24 Thread Mark Cave-Ayland
Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daudé --- hw/scsi/esp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c index 9386704a58..5b169b3720 100644 --- a/hw/scsi/esp.c +++ b/hw/scsi/esp.c @@ -315,7 +315,8 @@ static void

[PATCH v3 09/17] esp.c: introduce esp_fifo_push_buf() function for pushing to the FIFO

2024-03-24 Thread Mark Cave-Ayland
Instead of pushing data into the FIFO directly with fifo8_push_all(), add a new esp_fifo_push_buf() function and use it accordingly. Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daudé --- hw/scsi/esp.c | 11 --- 1 file changed, 8 insertions(+), 3 deletions(-) diff

[PATCH v3 17/17] esp.c: remove explicit setting of DRQ within ESP state machine

2024-03-24 Thread Mark Cave-Ayland
Now the esp_update_drq() is called for all reads/writes to the FIFO, there is no need to manually raise and lower the DRQ signal. Signed-off-by: Mark Cave-Ayland Resolves: https://gitlab.com/qemu-project/qemu/-/issues/611 Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1831 --- hw/scsi

[PATCH v3 14/17] esp.c: introduce esp_update_drq() and update esp_fifo_{push, pop}_buf() to use it

2024-03-24 Thread Mark Cave-Ayland
This new function sets the DRQ line correctly according to the current transfer mode, direction and FIFO contents. Update esp_fifo_push_buf() and esp_fifo_pop_buf() to use it so that DRQ is always set correctly when reading/writing multiple bytes to/from the FIFO. Signed-off-by: Mark Cave

[PATCH v3 16/17] esp.c: ensure esp_pdma_write() always calls esp_fifo_push()

2024-03-24 Thread Mark Cave-Ayland
This ensures that esp_update_drq() is called via esp_fifo_push() whenever the host uses PDMA to transfer data to a SCSI device. Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daudé --- hw/scsi/esp.c | 10 -- 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a

[PATCH v3 15/17] esp.c: update esp_fifo_{push, pop}() to call esp_update_drq()

2024-03-24 Thread Mark Cave-Ayland
This ensures that the DRQ line is always set correctly when reading/writing single bytes to/from the FIFO. Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daudé --- hw/scsi/esp.c | 14 ++ 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/hw/scsi/esp.c b

[PATCH v3 11/17] esp.c: rework esp_cdb_length() into esp_cdb_ready()

2024-03-24 Thread Mark Cave-Ayland
callers. Suggested-by: Paolo Bonzini Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 30 ++ 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c index f3aa5364cf..f47abc36d6 100644 --- a/hw/scsi/esp.c +++ b/hw/scsi/esp.c

[PATCH v3 06/17] esp.c: change esp_fifo_pop() to take ESPState

2024-03-24 Thread Mark Cave-Ayland
Now that all users of esp_fifo_pop() operate on the main FIFO there is no need to pass the FIFO explicitly. Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daudé --- hw/scsi/esp.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hw/scsi/esp.c b/hw

[PATCH v3 07/17] esp.c: use esp_fifo_push() instead of fifo8_push()

2024-03-24 Thread Mark Cave-Ayland
There are still a few places that use fifo8_push() instead of esp_fifo_push() in order to push a value into the FIFO. Update those places to use esp_fifo_push() instead. Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daudé --- hw/scsi/esp.c | 6 +++--- 1 file changed, 3

[PATCH v3 08/17] esp.c: change esp_fifo_pop_buf() to take ESPState

2024-03-24 Thread Mark Cave-Ayland
Now that all users of esp_fifo_pop_buf() operate on the main FIFO there is no need to pass the FIFO explicitly. Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daudé --- hw/scsi/esp.c | 24 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a

[PATCH v3 02/17] esp.c: replace esp_fifo_pop_buf() with esp_fifo8_pop_buf() in do_command_phase()

2024-03-24 Thread Mark Cave-Ayland
The aim is to restrict the esp_fifo_*() functions so that they only operate on the hardware FIFO. When reading from cmdfifo in do_command_phase() use the underlying esp_fifo8_pop_buf() function directly. Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 2 +- 1 file changed, 1 insertion(+), 1

[PATCH v3 10/17] esp.c: don't assert() if FIFO empty when executing non-DMA SELATNS

2024-03-24 Thread Mark Cave-Ayland
The current logic assumes that at least 1 byte is present in the FIFO when executing a non-DMA SELATNS command, but this may not be the case if the guest executes an invalid ESP command sequence. Reported-by: Chuhong Yuan Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 3 ++- 1 file

Re: [PATCH v3 12/17] esp.c: prevent cmdfifo overflow in esp_cdb_ready()

2024-03-25 Thread Mark Cave-Ayland
On 25/03/2024 10:26, Philippe Mathieu-Daudé wrote: On 24/3/24 20:17, Mark Cave-Ayland wrote: During normal use the cmdfifo will never wrap internally and cmdfifo_cdb_offset will always indicate the start of the SCSI CDB. However it is possible that a malicious guest could issue an invalid ESP

Re: [PATCH v3 10/17] esp.c: don't assert() if FIFO empty when executing non-DMA SELATNS

2024-03-25 Thread Mark Cave-Ayland
On 25/03/2024 10:49, Philippe Mathieu-Daudé wrote: On 24/3/24 20:16, Mark Cave-Ayland wrote: The current logic assumes that at least 1 byte is present in the FIFO when executing a non-DMA SELATNS command, but this may not be the case if the guest executes an invalid ESP command sequence

Re: [PATCH for-9.0] docs/about: Mark the iaspc machine type as deprecated

2024-03-26 Thread Mark Cave-Ayland
On 26/03/2024 12:51, Igor Mammedov wrote: ISAPC machine was introduced 25 years ago and it's a lot of time since such machine was around with real ISA only PC hardware practically defunct. Also it's slowly bit-rots (for example: I was able to boot RHEL6 on RHEL9 host in only TCG mode, while in K

Re: [PATCH for-9.0] docs/about: Mark the iaspc machine type as deprecated

2024-03-28 Thread Mark Cave-Ayland
On 27/03/2024 07:09, Gerd Hoffmann wrote: On Tue, Mar 26, 2024 at 01:30:48PM +, Mark Cave-Ayland wrote: Heh I've actually been using isapc over the past couple of weeks to fire up some old programs in a Windows 3 VM :) I'm wondering why these use cases can't simply use t

Re: [PATCH-for-9.0 v2] hw/i386/pc: Deprecate 64-bit CPUs on ISA-only PC machine

2024-03-28 Thread Mark Cave-Ayland
;no_parallel = !module_object_class_by_name(TYPE_ISA_PARALLEL); The logic around checking CPUID_EXT2_LM looks good to me. Slightly curious as to whether people feel updating PCMachineClass is necessary, or you can simply do qdev_get_machine() and use object_dynamic_cast() to see if the machine matches MACHINE_NAME("isapc") and warn that way? FWIW I'd be amazed if anyone were actually overriding the default and trying to do this, but I guess that's what the warn_report() is for anyhow: Reviewed-by: Mark Cave-Ayland ATB, Mark.

Re: [PATCH v3 00/17] [for-9.0] esp: avoid explicit setting of DRQ within ESP state machine

2024-04-04 Thread Mark Cave-Ayland
On 04/04/2024 11:28, Philippe Mathieu-Daudé wrote: Hi Mark, On 24/3/24 20:16, Mark Cave-Ayland wrote: Mark Cave-Ayland (17):    esp.c: move esp_fifo_pop_buf() internals to new esp_fifo8_pop_buf() function    esp.c: replace esp_fifo_pop_buf() with esp_fifo8_pop_buf() in

[PULL 04/17] esp.c: replace cmdfifo use of esp_fifo_pop() in do_message_phase()

2024-04-04 Thread Mark Cave-Ayland
Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Paolo Bonzini Message-Id: <20240324191707.623175-5-mark.cave-ayl...@ilande.co.uk> Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/h

[PULL 06/17] esp.c: change esp_fifo_pop() to take ESPState

2024-04-04 Thread Mark Cave-Ayland
Now that all users of esp_fifo_pop() operate on the main FIFO there is no need to pass the FIFO explicitly. Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Paolo Bonzini Message-Id: <20240324191707.623175-7-mark.cave-ayl...@ilande.co.uk> Signed-off-by

[PULL 00/17] qemu-sparc queue 20240404

2024-04-04 Thread Mark Cave-Ayland
covered by fuzzing (with thanks to Chuhong Yuan ) ---- Mark Cave-Ayland (17): esp.c: move esp_fifo_pop_buf() internals to new esp_fifo8_pop_buf() function esp.c: replace esp_fifo_pop_buf() with esp_fifo8_pop_buf() in do_com

[PULL 12/17] esp.c: prevent cmdfifo overflow in esp_cdb_ready()

2024-04-04 Thread Mark Cave-Ayland
end of the FIFO data buffer. Add an extra check to fifo8_peek_buf() to ensure that if the cmdfifo has wrapped internally then esp_cdb_ready() will exit rather than allow scsi_cdb_length() to access data outside the cmdfifo data buffer. Reported-by: Chuhong Yuan Signed-off-by: Mark Cave-Ayland

[PULL 01/17] esp.c: move esp_fifo_pop_buf() internals to new esp_fifo8_pop_buf() function

2024-04-04 Thread Mark Cave-Ayland
Update esp_fifo_pop_buf() to be a simple wrapper onto the new esp_fifo8_pop_buf() function. Signed-off-by: Mark Cave-Ayland Reviewed-by: Paolo Bonzini Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20240324191707.623175-2-mark.cave-ayl...@ilande.co.uk> Signed-off-by: Mark Cave-

[PULL 09/17] esp.c: introduce esp_fifo_push_buf() function for pushing to the FIFO

2024-04-04 Thread Mark Cave-Ayland
Instead of pushing data into the FIFO directly with fifo8_push_all(), add a new esp_fifo_push_buf() function and use it accordingly. Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Paolo Bonzini Message-Id: <20240324191707.623175-10-mark.cave-

[PULL 11/17] esp.c: rework esp_cdb_length() into esp_cdb_ready()

2024-04-04 Thread Mark Cave-Ayland
callers. Suggested-by: Paolo Bonzini Signed-off-by: Mark Cave-Ayland Reviewed-by: Paolo Bonzini Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20240324191707.623175-12-mark.cave-ayl...@ilande.co.uk> Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 30 ++-

[PULL 05/17] esp.c: change esp_fifo_push() to take ESPState

2024-04-04 Thread Mark Cave-Ayland
Now that all users of esp_fifo_push() operate on the main FIFO there is no need to pass the FIFO explicitly. Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Paolo Bonzini Message-Id: <20240324191707.623175-6-mark.cave-ayl...@ilande.co.uk> Signed-off-by

[PULL 14/17] esp.c: introduce esp_update_drq() and update esp_fifo_{push, pop}_buf() to use it

2024-04-04 Thread Mark Cave-Ayland
-Ayland Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Paolo Bonzini Message-Id: <20240324191707.623175-15-mark.cave-ayl...@ilande.co.uk> Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 48 +++- 1 file changed, 47 insertions(+), 1 deletion(-)

[PULL 16/17] esp.c: ensure esp_pdma_write() always calls esp_fifo_push()

2024-04-04 Thread Mark Cave-Ayland
This ensures that esp_update_drq() is called via esp_fifo_push() whenever the host uses PDMA to transfer data to a SCSI device. Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Paolo Bonzini Message-Id: <20240324191707.623175-17-mark.cave-ayl...@ilande.co

[PULL 02/17] esp.c: replace esp_fifo_pop_buf() with esp_fifo8_pop_buf() in do_command_phase()

2024-04-04 Thread Mark Cave-Ayland
The aim is to restrict the esp_fifo_*() functions so that they only operate on the hardware FIFO. When reading from cmdfifo in do_command_phase() use the underlying esp_fifo8_pop_buf() function directly. Signed-off-by: Mark Cave-Ayland Reviewed-by: Paolo Bonzini Reviewed-by: Philippe Mathieu

[PULL 10/17] esp.c: don't assert() if FIFO empty when executing non-DMA SELATNS

2024-04-04 Thread Mark Cave-Ayland
The current logic assumes that at least 1 byte is present in the FIFO when executing a non-DMA SELATNS command, but this may not be the case if the guest executes an invalid ESP command sequence. Reported-by: Chuhong Yuan Signed-off-by: Mark Cave-Ayland Reviewed-by: Paolo Bonzini Reviewed-by

[PULL 03/17] esp.c: replace esp_fifo_pop_buf() with esp_fifo8_pop_buf() in do_message_phase()

2024-04-04 Thread Mark Cave-Ayland
The aim is to restrict the esp_fifo_*() functions so that they only operate on the hardware FIFO. When reading from cmdfifo in do_message_phase() use the underlying esp_fifo8_pop_buf() function directly. Signed-off-by: Mark Cave-Ayland Reviewed-by: Paolo Bonzini Reviewed-by: Philippe Mathieu

[PULL 17/17] esp.c: remove explicit setting of DRQ within ESP state machine

2024-04-04 Thread Mark Cave-Ayland
Now the esp_update_drq() is called for all reads/writes to the FIFO, there is no need to manually raise and lower the DRQ signal. Signed-off-by: Mark Cave-Ayland Resolves: https://gitlab.com/qemu-project/qemu/-/issues/611 Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1831 Reviewed-by

[PULL 15/17] esp.c: update esp_fifo_{push, pop}() to call esp_update_drq()

2024-04-04 Thread Mark Cave-Ayland
This ensures that the DRQ line is always set correctly when reading/writing single bytes to/from the FIFO. Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Paolo Bonzini Message-Id: <20240324191707.623175-16-mark.cave-ayl...@ilande.co.uk> Signed-off-by

[PULL 13/17] esp.c: move esp_set_phase() and esp_get_phase() towards the beginning of the file

2024-04-04 Thread Mark Cave-Ayland
This allows these functions to be used earlier in the file without needing a separate forward declaration. Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Paolo Bonzini Message-Id: <20240324191707.623175-14-mark.cave-ayl...@ilande.co.uk> Signed-off-by

[PULL 08/17] esp.c: change esp_fifo_pop_buf() to take ESPState

2024-04-04 Thread Mark Cave-Ayland
Now that all users of esp_fifo_pop_buf() operate on the main FIFO there is no need to pass the FIFO explicitly. Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Paolo Bonzini Message-Id: <20240324191707.623175-9-mark.cave-ayl...@ilande.co.uk> Signed-off-by

[PULL 07/17] esp.c: use esp_fifo_push() instead of fifo8_push()

2024-04-04 Thread Mark Cave-Ayland
There are still a few places that use fifo8_push() instead of esp_fifo_push() in order to push a value into the FIFO. Update those places to use esp_fifo_push() instead. Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Paolo Bonzini Message-Id

Re: [PATCH 3/7] scripts/nsis.py: Automatically package required DLLs of QEMU executables

2024-03-10 Thread Mark Cave-Ayland
On 26/02/2024 06:30, Stefan Weil via wrote: Am 26.02.24 um 05:35 schrieb Bin Meng: On Mon, Feb 26, 2024 at 1:37 AM Stefan Weil wrote: Am 10.09.22 um 02:37 schrieb Bin Meng: On Sat, Sep 10, 2022 at 12:49 AM Mark Cave-Ayland wrote: On 08/09/2022 14:28, Bin Meng wrote: From: Bin Meng At

[PATCH] sun4u: remap ebus BAR0 to use unassigned_io_ops instead of alias to PCI IO space

2024-03-10 Thread Mark Cave-Ayland
ch allows these accesses to succeed and so allows OpenBSD to boot once again. Fixes: 4aa07e8649 ("hw/sparc64/ebus: Access memory regions via pci_address_space_io()") Signed-off-by: Mark Cave-Ayland --- [MCA: I'd like to merge this for 9.0 since I've been carrying various local

Re: [PATCH] target/i386: fix direction of "32-bit MMU" test

2024-03-11 Thread Mark Cave-Ayland
above 4G. Analyzed-by: Mark Cave-Ayland Fixes: b1661801c18 ("target/i386: Fix physical address truncation", 2024-02-28) Cc: qemu-sta...@nongnu.org Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2206 Signed-off-by: Paolo Bonzini --- target/i386/cpu.h | 2 +- target/i386/cpu.c

[PATCH v2 01/16] esp.c: replace cmdfifo use of esp_fifo_pop_buf() in do_command_phase()

2024-03-13 Thread Mark Cave-Ayland
The aim is to restrict the esp_fifo_*() functions so that they only operate on the hardware FIFO. When reading from cmdfifo in do_command_phase() use the underlying Fifo8 functions directly. Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions

[PATCH v2 04/16] esp.c: change esp_fifo_push() to take ESPState

2024-03-13 Thread Mark Cave-Ayland
Now that all users of esp_fifo_push() operate on the main FIFO there is no need to pass the FIFO explicitly. Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c index 7a24515bb9

[PATCH v2 02/16] esp.c: replace cmdfifo use of esp_fifo_pop_buf() in do_message_phase()

2024-03-13 Thread Mark Cave-Ayland
The aim is to restrict the esp_fifo_*() functions so that they only operate on the hardware FIFO. When reading from cmdfifo in do_message_phase() use the underlying Fifo8 functions directly. Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 7 ++- 1 file changed, 6 insertions(+), 1

[PATCH v2 09/16] esp.c: don't assert() if FIFO empty when executing non-DMA SELATNS

2024-03-13 Thread Mark Cave-Ayland
The current logic assumes that at least 1 byte is present in the FIFO when executing a non-DMA SELATNS command, but this may not be the case if the guest executes an invalid ESP command sequence. Reported-by: Chuhong Yuan Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 3 ++- 1 file

[PATCH v2 03/16] esp.c: replace cmdfifo use of esp_fifo_pop() in do_message_phase()

2024-03-13 Thread Mark Cave-Ayland
Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c index 100560244b..7a24515bb9 100644 --- a/hw/scsi/esp.c +++ b/hw/scsi/esp.c @@ -312,7 +312,8 @@ static void do_message_phase(ESPState *s

[PATCH v2 10/16] esp.c: don't assert() if FIFO empty when executing esp_cdb_length()

2024-03-13 Thread Mark Cave-Ayland
This does not happen during normal usage, but can occur if the guest issues an invalid ESP command sequence. Reported-by: Chuhong Yuan Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c index

[PATCH v2 00/16] [for-9.0] esp: avoid explicit setting of DRQ within ESP state machine

2024-03-13 Thread Mark Cave-Ayland
ly patch 16 removes all manual calls to esp_raise_drq() and esp_lower_drq() since the DRQ signal is now updated correctly upon each FIFO read/write access. Signed-off-by: Mark Cave-Ayland v2: - Rebase onto master - Add patches 9-12 to handle FIFO assert()s and cmdfifo overflow as reported by Ch

[PATCH v2 08/16] esp.c: introduce esp_fifo_push_buf() function for pushing to the FIFO

2024-03-13 Thread Mark Cave-Ayland
Instead of pushing data into the FIFO directly with fifo8_push_all(), add a new esp_fifo_push_buf() function and use it accordingly. Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 11 --- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c

[PATCH v2 14/16] esp.c: update esp_fifo_{push, pop}() to call esp_update_drq()

2024-03-13 Thread Mark Cave-Ayland
This ensures that the DRQ line is always set correctly when reading/writing single bytes to/from the FIFO. Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 14 ++ 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c index 53a1c7ceaf

[PATCH v2 05/16] esp.c: change esp_fifo_pop() to take ESPState

2024-03-13 Thread Mark Cave-Ayland
Now that all users of esp_fifo_pop() operate on the main FIFO there is no need to pass the FIFO explicitly. Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c index b898e43e2b..0e42ff50e7

[PATCH v2 11/16] esp.c: don't overflow cmdfifo if cmdfifo_cdb_offset >= ESP_CMDFIFO_SZ

2024-03-13 Thread Mark Cave-Ayland
reading past the end of the cmdfifo data in this case. Reported-by: Chuhong Yuan Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c index 0050493e18..05784b3f77 100644 --- a/hw/scsi/esp.c +++ b/hw

[PATCH v2 13/16] esp.c: introduce esp_update_drq() and update esp_fifo_{push, pop}_buf() to use it

2024-03-13 Thread Mark Cave-Ayland
This new function sets the DRQ line correctly according to the current transfer mode, direction and FIFO contents. Update esp_fifo_push_buf() and esp_fifo_pop_buf() to use it so that DRQ is always set correctly when reading/writing multiple bytes to/from the FIFO. Signed-off-by: Mark Cave

[PATCH v2 12/16] esp.c: move esp_set_phase() and esp_get_phase() towards the beginning of the file

2024-03-13 Thread Mark Cave-Ayland
This allows these functions to be used earlier in the file without needing a separate forward declaration. Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 36 ++-- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c

[PATCH v2 16/16] esp.c: remove explicit setting of DRQ within ESP state machine

2024-03-13 Thread Mark Cave-Ayland
Now the esp_update_drq() is called for all reads/writes to the FIFO, there is no need to manually raise and lower the DRQ signal. Signed-off-by: Mark Cave-Ayland Resolves: https://gitlab.com/qemu-project/qemu/-/issues/611 Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1831 --- hw/scsi

[PATCH v2 15/16] esp.c: ensure esp_pdma_write() always calls esp_fifo_push()

2024-03-13 Thread Mark Cave-Ayland
This ensures that esp_update_drq() is called via esp_fifo_push() whenever the host uses PDMA to transfer data to a SCSI device. Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 10 -- 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c index

[PATCH v2 07/16] esp.c: change esp_fifo_pop_buf() to take ESPState

2024-03-13 Thread Mark Cave-Ayland
Now that all users of esp_fifo_pop_buf() operate on the main FIFO there is no need to pass the FIFO explicitly. Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 28 ++-- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c

[PATCH v2 06/16] esp.c: use esp_fifo_push() instead of fifo8_push()

2024-03-13 Thread Mark Cave-Ayland
There are still a few places that use fifo8_push() instead of esp_fifo_push() in order to push a value into the FIFO. Update those places to use esp_fifo_push() instead. Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a

Re: [PATCH v2 01/16] esp.c: replace cmdfifo use of esp_fifo_pop_buf() in do_command_phase()

2024-03-13 Thread Mark Cave-Ayland
On 13/03/2024 11:03, Philippe Mathieu-Daudé wrote: On 13/3/24 09:57, Mark Cave-Ayland wrote: The aim is to restrict the esp_fifo_*() functions so that they only operate on the hardware FIFO. When reading from cmdfifo in do_command_phase() use the underlying Fifo8 functions directly. Signed

Re: [PATCH] target/sparc: Use GET_ASI_CODE for ASI_KERNELTXT and ASI_USERTXT

2024-04-12 Thread Mark Cave-Ayland
d(); +#endif + default: /* ??? In theory we've handled all of the ASIs that are valid for ldda, and this should raise DAE_invalid_asi. However, Thanks for the excellent analysis, and also thanks to Richard for improving the correctness of the patch: Acked-by: Mark Cave-Ayland ATB, Mark.

Re: [PATCH 2/5] target/sparc/cpu: Avoid spaces by default in the CPU names

2024-04-18 Thread Mark Cave-Ayland
st sparc_def_t sparc_defs[] = { .features = CPU_DEFAULT_FEATURES, }, { -.name = "TI SuperSparc 60", /* STP1020APGA */ +.name = "TI-SuperSparc-60", /* STP1020APGA */ .iu_version = 0x4000, /* SuperSPARC 3.x */ .fpu_version = 0 << FSR_VER_SHIFT, .mmu_version = 0x01000800, /* SuperSPARC 3.x, no MXCC */ @@ -484,7 +484,7 @@ static const sparc_def_t sparc_defs[] = { .features = CPU_DEFAULT_FEATURES, }, { -.name = "TI SuperSparc 61", +.name = "TI-SuperSparc-61", .iu_version = 0x4400, /* SuperSPARC 3.x */ .fpu_version = 0 << FSR_VER_SHIFT, .mmu_version = 0x0100, /* SuperSPARC 3.x, MXCC */ @@ -498,7 +498,7 @@ static const sparc_def_t sparc_defs[] = { .features = CPU_DEFAULT_FEATURES, }, { -.name = "TI SuperSparc II", +.name = "TI-SuperSparc-II", .iu_version = 0x4000, /* SuperSPARC II 1.x */ .fpu_version = 0 << FSR_VER_SHIFT, .mmu_version = 0x0800, /* SuperSPARC II 1.x, MXCC */ Thanks Thomas, this looks much better! Reviewed-by: Mark Cave-Ayland ATB, Mark.

Re: [PATCH 1/5] target/sparc/cpu: Rename the CPU models with a "+" in their names

2024-04-18 Thread Mark Cave-Ayland
references in Sun documentation to processors in the form "UltraSparc IIIi plus" so I'd be inclined to use that form for the new type names e.g. "UltraSparc-IIIi-plus". Otherwise looks good to me, thanks for having a look at this! Reviewed-by: Mark Cave-Ayland ATB, Mark.

Re: [PATCH 0/5] Sparc CPU naming and help text improvements

2024-04-18 Thread Mark Cave-Ayland
On 15/04/2024 08:26, Thomas Huth wrote: On 07/03/2024 18.43, Thomas Huth wrote: The Sparc CPU naming and the corresponding help text is somewhat confusing for the users. We should avoid spaces in the Names and provide clear information to the users what can be passed to the "-cpu" option. While

Re: [PATCH 4/5] docs/system/target-sparc: Improve the Sparc documentation

2024-04-18 Thread Mark Cave-Ayland
On 07/03/2024 17:43, Thomas Huth wrote: Add some words about how to enable or disable boolean features, and remove the note about a Linux kernel being available on the QEMU website (they have been removed long ago already). Signed-off-by: Thomas Huth --- docs/system/target-sparc.rst | 8

Re: [PATCH 5/5] docs/about: Deprecate the old "UltraSparc" CPU names that contain a "+"

2024-04-18 Thread Mark Cave-Ayland
also CPU) names is not allowed +in the QEMU object model anymore. ``Sun-UltraSparc-IIIi+`` and +``Sun-UltraSparc-IV+`` are currently still supported via a workaround, +but for consistency these will get removed in a future release, too. +Use ``Sun-UltraSparc-IIIip`` and ``Sun-UltraSparc-IVp`` instead. + CRIS CPU architecture (since 9.0) ''''''''''''''''''''''''''''''''' See my previous comment about the CPU names, otherwise: Reviewed-by: Mark Cave-Ayland ATB, Mark.

Re: [PATCH 0/5] Sparc CPU naming and help text improvements

2024-04-18 Thread Mark Cave-Ayland
On 18/04/2024 21:08, Mark Cave-Ayland wrote: On 15/04/2024 08:26, Thomas Huth wrote: On 07/03/2024 18.43, Thomas Huth wrote: The Sparc CPU naming and the corresponding help text is somewhat confusing for the users. We should avoid spaces in the Names and provide clear information to the

[PATCH] hw/sparc64: set iommu_platform=on for virtio devices attached to the sun4u machine

2024-04-18 Thread Mark Cave-Ayland
virtio driver where this is not the case. Set the sun4u machine defaults for all virtio devices so that disable-legacy=on and iommu_platform=on to ensure a default configuration will allow virtio devices to function correctly on both Linux and NetBSD. Signed-off-by: Mark Cave-Ayland --- hw/sparc64

Re: [PATCH 4/5] docs/system/target-sparc: Improve the Sparc documentation

2024-04-18 Thread Mark Cave-Ayland
On 19/04/2024 05:59, Thomas Huth wrote: On 18/04/2024 22.27, Mark Cave-Ayland wrote: On 07/03/2024 17:43, Thomas Huth wrote: Add some words about how to enable or disable boolean features, and remove the note about a Linux kernel being available on the QEMU website (they have been removed

Re: [PATCH v2 3/4] docs/system/target-sparc: Improve the Sparc documentation

2024-04-19 Thread Mark Cave-Ayland
IOS and Solaris. Reviewed-by: Mark Cave-Ayland ATB, Mark.

[PATCH] target/i386/translate.c: always write 32-bits for SGDT and SIDT

2024-04-19 Thread Mark Cave-Ayland
viour matches the behaviour on real hardware. Signed-off-by: Mark Cave-Ayland Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2198 -- MCA: Whilst I don't have a copy of OS/2 Warp handy, I've confirmed that this patch fixes the issue in WFW 3.11 with Win32s. For more technical infor

Re: [PATCH] target/i386/translate.c: always write 32-bits for SGDT and SIDT

2024-04-19 Thread Mark Cave-Ayland
On 20/04/2024 02:21, Richard Henderson wrote: On 4/19/24 12:51, Mark Cave-Ayland wrote: The various Intel CPU manuals claim that SGDT and SIDT can write either 24-bits or 32-bits depending upon the operand size, but this is incorrect. Not only do the Intel CPU manuals give contradictory

Re: [PATCH 4/5] docs/system/target-sparc: Improve the Sparc documentation

2024-04-19 Thread Mark Cave-Ayland
On 20/04/2024 00:14, Brad Smith wrote: On 2024-04-18 4:27 p.m., Mark Cave-Ayland wrote: On 07/03/2024 17:43, Thomas Huth wrote: Add some words about how to enable or disable boolean features, and remove the note about a Linux kernel being available on the QEMU website (they have been removed

Re: [PATCH] target/i386/translate.c: always write 32-bits for SGDT and SIDT

2024-04-23 Thread Mark Cave-Ayland
On 23/04/2024 10:18, Paolo Bonzini wrote: On Mon, Apr 22, 2024 at 9:10 PM Volker Rümelin wrote: Am 20.04.24 um 07:40 schrieb Mark Cave-Ayland: Current documentation agrees that all 32 bits are written, so I don't think you need this comment: Ah that's good to know the docs are n

Re: [PATCH v3] hw/audio/virtio-snd: Use device endianness instead of target one

2024-04-24 Thread Mark Cave-Ayland
On 23/04/2024 12:05, Philippe Mathieu-Daudé wrote: On 23/4/24 11:18, Manos Pitsidianakis wrote: On Tue, 23 Apr 2024 at 11:47, Manos Pitsidianakis wrote: On Tue, 23 Apr 2024 at 00:11, Michael S. Tsirkin wrote: On Mon, Apr 22, 2024 at 11:07:21PM +0200, Philippe Mathieu-Daudé wrote: On 22/4

Re: [PATCH v3] hw/audio/virtio-snd: Use device endianness instead of target one

2024-04-25 Thread Mark Cave-Ayland
On 25/04/2024 07:30, Manos Pitsidianakis wrote: On Wed, 24 Apr 2024 at 13:31, Mark Cave-Ayland wrote: On 23/04/2024 12:05, Philippe Mathieu-Daudé wrote: On 23/4/24 11:18, Manos Pitsidianakis wrote: On Tue, 23 Apr 2024 at 11:47, Manos Pitsidianakis wrote: On Tue, 23 Apr 2024 at 00:11

Re: [PATCH v3] hw/audio/virtio-snd: Use device endianness instead of target one

2024-04-25 Thread Mark Cave-Ayland
On 25/04/2024 11:04, Manos Pitsidianakis wrote: On Thu, 25 Apr 2024 at 10:49, Mark Cave-Ayland wrote: On 25/04/2024 07:30, Manos Pitsidianakis wrote: On Wed, 24 Apr 2024 at 13:31, Mark Cave-Ayland wrote: On 23/04/2024 12:05, Philippe Mathieu-Daudé wrote: On 23/4/24 11:18, Manos

Re: [PATCH v3] hw/audio/virtio-snd: Use device endianness instead of target one

2024-04-25 Thread Mark Cave-Ayland
On 25/04/2024 11:26, Manos Pitsidianakis wrote: On Thu, 25 Apr 2024 at 13:24, Michael S. Tsirkin wrote: On Thu, Apr 25, 2024 at 01:04:31PM +0300, Manos Pitsidianakis wrote: On Thu, 25 Apr 2024 at 10:49, Mark Cave-Ayland wrote: On 25/04/2024 07:30, Manos Pitsidianakis wrote: On Wed, 24

Re: [PATCH 00/41] target/sparc: Implement VIS4

2024-04-29 Thread Mark Cave-Ayland
On 02/03/2024 05:15, Richard Henderson wrote: I whipped this up over the Christmas break, but I'm just now getting around to posting. I have not attempted to model the newer cpus that have these features, but it is possible to enable the features manually via -cpu properties. Possibly the firs

Re: [PATCH v2 0/4] Sparc CPU naming and help text improvements

2024-04-29 Thread Mark Cave-Ayland
On 19/04/2024 09:48, Thomas Huth wrote: The Sparc CPU naming and the corresponding help text is somewhat confusing for the users. We should avoid spaces in the Names and provide clear information to the users what can be passed to the "-cpu" option. While we're at it, also remove the "+" from tw

Re: [PATCH 00/41] target/sparc: Implement VIS4

2024-04-29 Thread Mark Cave-Ayland
On 29/04/2024 22:02, Richard Henderson wrote: On 4/29/24 13:52, Mark Cave-Ayland wrote: No objections here about the remainder of the series, other than that I don't have an easy/obvious way to test the new instructions... I was thinking about adding support to RISU, but the gcc compile

Re: [PULL 0/1] target/sparc late fix

2024-04-29 Thread Mark Cave-Ayland
On 28/04/2024 04:10, M Bazz wrote: Applied, thanks. Please update the changelog at https://wiki.qemu.org/ChangeLog/9.0 for any user-visible changes. The 9.0 Changelog was never updated. Could someone with the permissions please add the following to the SPARC section: sparc32: Fixed a longsta

Re: [PATCH 04/41] target/sparc: Fix FMUL8x16A{U,L}

2024-04-30 Thread Mark Cave-Ayland
On 02/03/2024 05:15, Richard Henderson wrote: These instructions have f32 inputs, which changes the decode of the register numbers. While we're fixing things, use a common helper for both insns, extracting the 16-bit scalar in tcg beforehand. Signed-off-by: Richard Henderson --- target/spar

Re: [PATCH v2 0/7] target/sparc: vis fixes

2024-05-05 Thread Mark Cave-Ayland
On 02/05/2024 17:55, Richard Henderson wrote: Split out from my vis4 patch set, with just the bug fixes. I've fixed the issue in patch 6, as noticed by Mark, but include the follow-up that cleans up all of the macros by removing them. r~ Richard Henderson (7): linux-user/sparc: Add more

Re: [PATCH v2 0/7] target/sparc: vis fixes

2024-05-05 Thread Mark Cave-Ayland
On 03/05/2024 19:18, Philippe Mathieu-Daudé wrote: On 2/5/24 18:55, Richard Henderson wrote: Split out from my vis4 patch set, with just the bug fixes. I've fixed the issue in patch 6, as noticed by Mark, but include the follow-up that cleans up all of the macros by removing them. r~ Richar

[PULL 00/12] qemu-sparc queue 20240506

2024-05-06 Thread Mark Cave-Ayland
or various VIS instructions from Richard - CPU name updates from Thomas ---- Mark Cave-Ayland (1): hw/sparc64: set iommu_platform=on for virtio devices attached to the sun4u machine Richard Henderson (7): linux-user/sparc

[PULL 02/12] target/sparc/cpu: Avoid spaces by default in the CPU names

2024-05-06 Thread Mark Cave-Ayland
/qemu/-/issues/2141 Reviewed-by: Richard Henderson Reviewed-by: Mark Cave-Ayland Signed-off-by: Thomas Huth Message-Id: <20240419084812.504779-3-th...@redhat.com> Signed-off-by: Mark Cave-Ayland --- target/sparc/cpu.c | 56 +++--- 1 file changed, 28 i

[PULL 01/12] target/sparc/cpu: Rename the CPU models with a "+" in their names

2024-05-06 Thread Mark Cave-Ayland
arc CPU names, and provide backward compatibility for the old names via some simple checks in the sparc_cpu_class_by_name() function. Reviewed-by: Mark Cave-Ayland Signed-off-by: Thomas Huth Reviewed-by: Richard Henderson Message-Id: <20240419084812.504779-2-th...@redhat.com> Signed-off-by: Mark

[PULL 04/12] docs/about: Deprecate the old "UltraSparc" CPU names that contain a "+"

2024-05-06 Thread Mark Cave-Ayland
From: Thomas Huth For consistency we should drop the names with a "+" in it in the long run. Reviewed-by: Mark Cave-Ayland Signed-off-by: Thomas Huth Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson Message-Id: <20240419084812.504779-5-th...@redhat.com> Sig

[PULL 07/12] target/sparc: Fix FEXPAND

2024-05-06 Thread Mark Cave-Ayland
From: Richard Henderson This is a 2-operand instruction, not 3-operand. Worse, we took the source from the wrong operand. Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20240502165528.244004-3-richard.hender...@linaro.org> Signed-off-by: Mark Cave-

[PULL 06/12] linux-user/sparc: Add more hwcap bits for sparc64

2024-05-06 Thread Mark Cave-Ayland
From: Richard Henderson Supply HWCAP_SPARC_V8PLUS, HWCAP_SPARC_MUL32, HWCAP_SPARC_DIV32, HWCAP_SPARC_POPC, HWCAP_SPARC_FSMULD, HWCAP_SPARC_VIS, HWCAP_SPARC_VIS2. Signed-off-by: Richard Henderson Message-Id: <20240502165528.244004-2-richard.hender...@linaro.org> Signed-off-by: Mark Cave-

[PULL 09/12] target/sparc: Fix FMUL8x16A{U,L}

2024-05-06 Thread Mark Cave-Ayland
Daudé Message-Id: <20240502165528.244004-5-richard.hender...@linaro.org> Signed-off-by: Mark Cave-Ayland --- target/sparc/helper.h | 3 +-- target/sparc/translate.c | 38 +++ target/sparc/vis_helper.c | 47 +++ 3 files

[PULL 05/12] hw/sparc64: set iommu_platform=on for virtio devices attached to the sun4u machine

2024-05-06 Thread Mark Cave-Ayland
virtio driver where this is not the case. Set the sun4u machine defaults for all virtio devices so that disable-legacy=on and iommu_platform=on to ensure a default configuration will allow virtio devices to function correctly on both Linux and NetBSD. Signed-off-by: Mark Cave-Ayland Message-Id

[PULL 03/12] docs/system/target-sparc: Improve the Sparc documentation

2024-05-06 Thread Mark Cave-Ayland
). Fixes: https://gitlab.com/qemu-project/qemu/-/issues/2141 Signed-off-by: Thomas Huth Reviewed-by: Mark Cave-Ayland Reviewed-by: Richard Henderson Message-Id: <20240419084812.504779-4-th...@redhat.com> Signed-off-by: Mark Cave-Ayland --- docs/system/target-sparc.rst | 12 +++-

[PULL 08/12] target/sparc: Fix FMUL8x16

2024-05-06 Thread Mark Cave-Ayland
244004-4-richard.hender...@linaro.org> Signed-off-by: Mark Cave-Ayland --- target/sparc/helper.h | 2 +- target/sparc/translate.c | 21 - target/sparc/vis_helper.c | 9 + 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/target/sparc/helper.h b/t

[PULL 12/12] target/sparc: Split out do_ms16b

2024-05-06 Thread Mark Cave-Ayland
hieu-Daudé Message-Id: <20240502165528.244004-8-richard.hender...@linaro.org> Signed-off-by: Mark Cave-Ayland --- target/sparc/vis_helper.c | 78 --- 1 file changed, 24 insertions(+), 54 deletions(-) diff --git a/target/sparc/vis_helper.c b/target/sparc/vi

[PULL 11/12] target/sparc: Fix FPMERGE

2024-05-06 Thread Mark Cave-Ayland
From: Richard Henderson This instruction has f32 inputs, which changes the decode of the register numbers. Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20240502165528.244004-7-richard.hender...@linaro.org> Signed-off-by: Mark Cave-Ayland --- target

[PULL 10/12] target/sparc: Fix FMULD8*X16

2024-05-06 Thread Mark Cave-Ayland
: Mark Cave-Ayland --- target/sparc/helper.h | 2 -- target/sparc/translate.c | 48 +++ target/sparc/vis_helper.c | 46 - 3 files changed, 44 insertions(+), 52 deletions(-) diff --git a/target/sparc/helper.h b/target

Re: [Qemu-devel] [Qemu-trivial] [PATCH v3] hw/char/escc: Lower irq when transmit buffer is filled

2019-05-03 Thread Mark Cave-Ayland
On 02/05/2019 13:11, Philippe Mathieu-Daudé wrote: > On 5/2/19 11:04 AM, Laurent Vivier wrote: >> On 19/04/2019 17:40, Stephen Checkoway wrote: >>> The SCC/ESCC will briefly stop asserting an interrupt when the >>> transmit FIFO is filled. >>> >>> This code doesn't model the transmit FIFO/shift re

<    5   6   7   8   9   10   11   12   13   14   >