qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Hervé Poussineau" <hpoussin@reactos.org>
To: Thomas Huth <thuth@redhat.com>,
	qemu-devel@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>
Cc: Yongbok Kim <yongbok.kim@mips.com>,
	Aurelien Jarno <aurelien@aurel32.net>,
	Fam Zheng <famz@redhat.com>
Subject: Re: [Qemu-devel] [PATCH] hw/mips/jazz: Fix implicit creation of "-drive if=scsi" devices
Date: Thu, 8 Mar 2018 09:03:40 +0100	[thread overview]
Message-ID: <2235ed4c-ae60-84e4-4d11-7f2aa0283e3c@reactos.org> (raw)
In-Reply-To: <1520414644-11535-1-git-send-email-thuth@redhat.com>

Le 07/03/2018 à 10:24, Thomas Huth a écrit :
> The global hack for creating SCSI devices has recently been removed,
> but this apparently broke SCSI devices on some boards that were not
> ready for this change yet. For the pica61 machine you now get:
> 
> $ mips64-softmmu/qemu-system-mips64 -M pica61 -cdrom x.iso
> qemu-system-mips64: -cdrom x.iso: machine type does not support if=scsi,bus=0,unit=2
> 
> Fix it by calling scsi_bus_legacy_handle_cmdline() after creating the
> corresponding SCSI controller.
> 
> Fixes: 1454509726719e0933c800fad00d6999752688ea
> Signed-off-by: Thomas Huth <thuth@redhat.com>

Reviewed-by: Hervé Poussineau <hpoussin@reactos.org>

> ---
>   hw/mips/mips_jazz.c   |  7 ++++---
>   hw/scsi/esp.c         | 12 +++++++-----
>   include/hw/scsi/esp.h | 10 +++++-----
>   3 files changed, 16 insertions(+), 13 deletions(-)
> 
> diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c
> index b09871a..bde2c9b 100644
> --- a/hw/mips/mips_jazz.c
> +++ b/hw/mips/mips_jazz.c
> @@ -147,6 +147,7 @@ static void mips_jazz_init(MachineState *machine,
>       MemoryRegion *ram = g_new(MemoryRegion, 1);
>       MemoryRegion *bios = g_new(MemoryRegion, 1);
>       MemoryRegion *bios2 = g_new(MemoryRegion, 1);
> +    ESPState *esp;
>   
>       /* init CPUs */
>       cpu = MIPS_CPU(cpu_create(machine->cpu_type));
> @@ -278,9 +279,9 @@ static void mips_jazz_init(MachineState *machine,
>       }
>   
>       /* SCSI adapter */
> -    esp_init(0x80002000, 0,
> -             rc4030_dma_read, rc4030_dma_write, dmas[0],
> -             qdev_get_gpio_in(rc4030, 5), &esp_reset, &dma_enable);
> +    esp = esp_init(0x80002000, 0, rc4030_dma_read, rc4030_dma_write, dmas[0],
> +                   qdev_get_gpio_in(rc4030, 5), &esp_reset, &dma_enable);
> +    scsi_bus_legacy_handle_cmdline(&esp->bus);
>   
>       /* Floppy */
>       for (n = 0; n < MAX_FD; n++) {
> diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c
> index 45975c2..64ec285 100644
> --- a/hw/scsi/esp.c
> +++ b/hw/scsi/esp.c
> @@ -618,11 +618,11 @@ static const MemoryRegionOps sysbus_esp_mem_ops = {
>       .valid.accepts = esp_mem_accepts,
>   };
>   
> -void esp_init(hwaddr espaddr, int it_shift,
> -              ESPDMAMemoryReadWriteFunc dma_memory_read,
> -              ESPDMAMemoryReadWriteFunc dma_memory_write,
> -              void *dma_opaque, qemu_irq irq, qemu_irq *reset,
> -              qemu_irq *dma_enable)
> +ESPState *esp_init(hwaddr espaddr, int it_shift,
> +                   ESPDMAMemoryReadWriteFunc dma_memory_read,
> +                   ESPDMAMemoryReadWriteFunc dma_memory_write,
> +                   void *dma_opaque, qemu_irq irq, qemu_irq *reset,
> +                   qemu_irq *dma_enable)
>   {
>       DeviceState *dev;
>       SysBusDevice *s;
> @@ -644,6 +644,8 @@ void esp_init(hwaddr espaddr, int it_shift,
>       sysbus_mmio_map(s, 0, espaddr);
>       *reset = qdev_get_gpio_in(dev, 0);
>       *dma_enable = qdev_get_gpio_in(dev, 1);
> +
> +    return esp;
>   }
>   
>   static const struct SCSIBusInfo esp_scsi_info = {
> diff --git a/include/hw/scsi/esp.h b/include/hw/scsi/esp.h
> index 3b160f8..93fdace 100644
> --- a/include/hw/scsi/esp.h
> +++ b/include/hw/scsi/esp.h
> @@ -7,11 +7,6 @@
>   /* esp.c */
>   #define ESP_MAX_DEVS 7
>   typedef void (*ESPDMAMemoryReadWriteFunc)(void *opaque, uint8_t *buf, int len);
> -void esp_init(hwaddr espaddr, int it_shift,
> -              ESPDMAMemoryReadWriteFunc dma_memory_read,
> -              ESPDMAMemoryReadWriteFunc dma_memory_write,
> -              void *dma_opaque, qemu_irq irq, qemu_irq *reset,
> -              qemu_irq *dma_enable);
>   
>   #define ESP_REGS 16
>   #define TI_BUFSZ 16
> @@ -136,6 +131,11 @@ typedef struct {
>   #define TCHI_FAS100A 0x4
>   #define TCHI_AM53C974 0x12
>   
> +ESPState *esp_init(hwaddr espaddr, int it_shift,
> +                   ESPDMAMemoryReadWriteFunc dma_memory_read,
> +                   ESPDMAMemoryReadWriteFunc dma_memory_write,
> +                   void *dma_opaque, qemu_irq irq, qemu_irq *reset,
> +                   qemu_irq *dma_enable);
>   void esp_dma_enable(ESPState *s, int irq, int level);
>   void esp_request_cancelled(SCSIRequest *req);
>   void esp_command_complete(SCSIRequest *req, uint32_t status, size_t resid);
> 

  reply	other threads:[~2018-03-08  8:04 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-07  9:24 [Qemu-devel] [PATCH] hw/mips/jazz: Fix implicit creation of "-drive if=scsi" devices Thomas Huth
2018-03-08  8:03 ` Hervé Poussineau [this message]
2018-03-08 18:49 ` 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=2235ed4c-ae60-84e4-4d11-7f2aa0283e3c@reactos.org \
    --to=hpoussin@reactos.org \
    --cc=aurelien@aurel32.net \
    --cc=famz@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.com \
    --cc=yongbok.kim@mips.com \
    /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).