qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	laurent@vivier.eu, fam@euphon.net, qemu-devel@nongnu.org,
	qemu-block@nongnu.org
Subject: Re: [PATCH v2 09/11] scsi-disk: allow MODE SELECT block descriptor to set the ROM device block size
Date: Thu, 26 May 2022 14:08:51 +0200	[thread overview]
Message-ID: <873eddc7-a18f-2728-14dd-681d951eebbb@redhat.com> (raw)
In-Reply-To: <20220424164935.7339-10-mark.cave-ayland@ilande.co.uk>

On 4/24/22 18:49, Mark Cave-Ayland wrote:
> Whilst CDROM drives usually have a 2048 byte sector size, older drives have the
> ability to switch between 2048 byte and 512 byte sector sizes by specifying a
> block descriptor in the MODE SELECT command.
> 
> If a MODE SELECT block descriptor is provided, update the scsi-cd device block
> size with the provided value accordingly.
> 
> This allows CDROMs to be used with A/UX whose driver only works with a 512 byte
> sector size.
> 
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>

Why do this only for MMC?

Paolo

> ---
>   hw/scsi/scsi-disk.c  | 7 +++++++
>   hw/scsi/trace-events | 1 +
>   2 files changed, 8 insertions(+)
> 
> diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
> index 6991493cf4..41ebbe3045 100644
> --- a/hw/scsi/scsi-disk.c
> +++ b/hw/scsi/scsi-disk.c
> @@ -1583,6 +1583,13 @@ static void scsi_disk_emulate_mode_select(SCSIDiskReq *r, uint8_t *inbuf)
>           goto invalid_param;
>       }
>   
> +    /* Allow changing the block size of ROM devices */
> +    if (s->qdev.type == TYPE_ROM && bd_len &&
> +        p[6] != (s->qdev.blocksize >> 8)) {
> +            s->qdev.blocksize = p[6] << 8;
> +            trace_scsi_disk_mode_select_rom_set_blocksize(s->qdev.blocksize);
> +    }
> +
>       len -= bd_len;
>       p += bd_len;
>   
> diff --git a/hw/scsi/trace-events b/hw/scsi/trace-events
> index 25eae9f307..1a021ddae9 100644
> --- a/hw/scsi/trace-events
> +++ b/hw/scsi/trace-events
> @@ -340,6 +340,7 @@ scsi_disk_dma_command_WRITE(const char *cmd, uint64_t lba, int len) "Write %s(se
>   scsi_disk_new_request(uint32_t lun, uint32_t tag, const char *line) "Command: lun=%d tag=0x%x data=%s"
>   scsi_disk_aio_sgio_command(uint32_t tag, uint8_t cmd, uint64_t lba, int len, uint32_t timeout) "disk aio sgio: tag=0x%x cmd=0x%x (sector %" PRId64 ", count %d) timeout=%u"
>   scsi_disk_mode_select_page_truncated(int page, int len, int page_len) "page %d expected length %d but received length %d"
> +scsi_disk_mode_select_rom_set_blocksize(int blocksize) "set ROM block size to %d"
>   
>   # scsi-generic.c
>   scsi_generic_command_complete_noio(void *req, uint32_t tag, int statuc) "Command complete %p tag=0x%x status=%d"



  reply	other threads:[~2022-05-26 12:13 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-24 16:49 [PATCH v2 00/11] scsi: add quirks and features to support m68k Macs Mark Cave-Ayland
2022-04-24 16:49 ` [PATCH v2 01/11] scsi-disk: add FORMAT UNIT command Mark Cave-Ayland
2022-05-25 22:01   ` Laurent Vivier
2022-04-24 16:49 ` [PATCH v2 02/11] scsi-disk: add new quirks bitmap to SCSIDiskState Mark Cave-Ayland
2022-05-26 12:26   ` Laurent Vivier
2022-04-24 16:49 ` [PATCH v2 03/11] scsi-disk: add MODE_PAGE_APPLE_VENDOR quirk for Macintosh Mark Cave-Ayland
2022-05-26 12:50   ` Laurent Vivier
2022-04-24 16:49 ` [PATCH v2 04/11] q800: implement compat_props to enable quirk_mode_page_apple_vendor for scsi-hd devices Mark Cave-Ayland
2022-05-26 12:25   ` Laurent Vivier
2022-04-24 16:49 ` [PATCH v2 05/11] scsi-disk: add SCSI_DISK_QUIRK_MODE_SENSE_ROM_FORCE_DBD quirk for Macintosh Mark Cave-Ayland
2022-04-24 16:49 ` [PATCH v2 06/11] q800: implement compat_props to enable quirk_mode_sense_rom_force_dbd for scsi-cd devices Mark Cave-Ayland
2022-05-26 12:25   ` Laurent Vivier
2022-04-24 16:49 ` [PATCH v2 07/11] scsi-disk: allow truncated MODE SELECT requests Mark Cave-Ayland
2022-05-26 12:06   ` Paolo Bonzini
2022-05-30 21:00     ` Mark Cave-Ayland
2022-04-24 16:49 ` [PATCH v2 08/11] scsi-disk: allow the MODE_PAGE_R_W_ERROR AWRE bit to be changeable for CDROM drives Mark Cave-Ayland
2022-04-24 16:49 ` [PATCH v2 09/11] scsi-disk: allow MODE SELECT block descriptor to set the ROM device block size Mark Cave-Ayland
2022-05-26 12:08   ` Paolo Bonzini [this message]
2022-05-30 21:03     ` Mark Cave-Ayland
2022-04-24 16:49 ` [PATCH v2 10/11] q800: add default vendor and product information for scsi-hd devices Mark Cave-Ayland
2022-05-26 12:22   ` Laurent Vivier
2022-04-24 16:49 ` [PATCH v2 11/11] q800: add default vendor and product information for scsi-cd devices Mark Cave-Ayland
2022-05-26 12:22   ` Laurent Vivier
2022-05-18 14:16 ` [PATCH v2 00/11] scsi: add quirks and features to support m68k Macs Mark Cave-Ayland
2022-05-26 12:09   ` Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=873eddc7-a18f-2728-14dd-681d951eebbb@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=fam@euphon.net \
    --cc=laurent@vivier.eu \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).