qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 154074: esp: move handle_ti_cmd() cleanup cod


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 154074: esp: move handle_ti_cmd() cleanup code to esp_do_d...
Date: Tue, 29 Oct 2019 11:05:24 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 15407433e822f47f85bfd17835ec9663d6dc8556
      
https://github.com/qemu/qemu/commit/15407433e822f47f85bfd17835ec9663d6dc8556
  Author: Laurent Vivier <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M hw/scsi/esp.c

  Log Message:
  -----------
  esp: move handle_ti_cmd() cleanup code to esp_do_dma().

To prepare following patches move do_cmd and DMA special case
from handle_ti() to esp_do_dma().

This part of the code must be only executed with real DMA, not with
pseudo-DMA. And PDMA is detected in esp_do_dma(), so move this part
of the code in esp_do_dma(). We keep the code in handle_ti_cmd()
in the case no DMA is done.

Signed-off-by: Laurent Vivier <address@hidden>
Acked-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>


  Commit: 6130b18850945eda3904db0e65fd0b7a3afe1f6a
      
https://github.com/qemu/qemu/commit/6130b18850945eda3904db0e65fd0b7a3afe1f6a
  Author: Laurent Vivier <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M hw/scsi/esp.c

  Log Message:
  -----------
  esp: move get_cmd() post-DMA code to get_cmd_cb()

This will be needed to implement pseudo-DMA

Signed-off-by: Laurent Vivier <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Acked-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>


  Commit: 74d71ea16bc09fef553508a3eaa106dfe424af46
      
https://github.com/qemu/qemu/commit/74d71ea16bc09fef553508a3eaa106dfe424af46
  Author: Laurent Vivier <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M hw/scsi/esp.c
    M include/hw/scsi/esp.h

  Log Message:
  -----------
  esp: add pseudo-DMA as used by Macintosh

There is no DMA in Quadra 800, so the CPU reads/writes the data from the
PDMA register (offset 0x100, ESP_PDMA in hw/m68k/q800.c) and copies them
to/from the memory.

There is a nice assembly loop in the kernel to do that, see
linux/drivers/scsi/mac_esp.c:MAC_ESP_PDMA_LOOP().

The start of the transfer is triggered by the DREQ interrupt (see linux
mac_esp_send_pdma_cmd()), the CPU polls on the IRQ flag to start the
transfer after a SCSI command has been sent (in Quadra 800 it goes
through the VIA2, the via2-irq line and the vIFR register)

The Macintosh hardware includes hardware handshaking to prevent the CPU
from reading invalid data or writing data faster than the peripheral
device can accept it.

This is the "blind mode", and from the doc:
"Approximate maximum SCSI transfer rates within a blocks are 1.4 MB per
second for blind transfers in the Macintosh II"

Some references can be found in:
  Apple Macintosh Family Hardware Reference, ISBN 0-201-19255-1
  Guide to the Macintosh Family Hardware, ISBN-0-201-52405-8

Acked-by: Dr. David Alan Gilbert <address@hidden>
Co-developed-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>
Acked-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>


  Commit: be9208419865bc653f869e9b8cc22bdcbd9429fb
      
https://github.com/qemu/qemu/commit/be9208419865bc653f869e9b8cc22bdcbd9429fb
  Author: Laurent Vivier <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M hw/net/dp8393x.c

  Log Message:
  -----------
  dp8393x: manage big endian bus

This is needed by Quadra 800, this card can run on little-endian
or big-endian bus.

Signed-off-by: Laurent Vivier <address@hidden>
Tested-by: Hervé Poussineau <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Hervé Poussineau <address@hidden>
Message-Id: <address@hidden>


  Commit: 6dca62a0000f95e0b7020aa00d0ca9b2c421f341
      
https://github.com/qemu/qemu/commit/6dca62a0000f95e0b7020aa00d0ca9b2c421f341
  Author: Laurent Vivier <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M MAINTAINERS
    M default-configs/m68k-softmmu.mak
    M hw/m68k/Kconfig
    M hw/misc/Kconfig
    M hw/misc/Makefile.objs
    A hw/misc/mac_via.c
    A include/hw/misc/mac_via.h

  Log Message:
  -----------
  hw/m68k: add VIA support

Inside the 680x0 Macintosh, VIA (Versatile Interface Adapter) is used
to interface the keyboard, Mouse, and real-time clock. It also provides
control line for the floppy disk driver, video interface, sound circuitry
and serial interface.

This implementation is based on the MOS6522 object.

Co-developed-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>
Reviewed-by: Hervé Poussineau <address@hidden>
Message-Id: <address@hidden>


  Commit: 87a34e2adb03ca4120ef1e69ad5fe75d65c88b24
      
https://github.com/qemu/qemu/commit/87a34e2adb03ca4120ef1e69ad5fe75d65c88b24
  Author: Laurent Vivier <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M hw/misc/Kconfig
    M hw/misc/mac_via.c
    M include/hw/misc/mac_via.h

  Log Message:
  -----------
  hw/m68k: implement ADB bus support for via

VIA needs to be able to poll the ADB interface and to read/write data
from/to the bus.

This patch adds functions allowing that.

Co-developed-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>
Reviewed-by: Hervé Poussineau <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Message-Id: <address@hidden>


  Commit: fa2ba3b80e13e6bb961bfe3e614c606cd4985d3d
      
https://github.com/qemu/qemu/commit/fa2ba3b80e13e6bb961bfe3e614c606cd4985d3d
  Author: Laurent Vivier <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M MAINTAINERS
    M hw/Kconfig
    M hw/Makefile.objs
    M hw/m68k/Kconfig
    A hw/nubus/Kconfig
    A hw/nubus/Makefile.objs
    A hw/nubus/mac-nubus-bridge.c
    A hw/nubus/nubus-bridge.c
    A hw/nubus/nubus-bus.c
    A hw/nubus/nubus-device.c
    A include/hw/nubus/mac-nubus-bridge.h
    A include/hw/nubus/nubus.h

  Log Message:
  -----------
  hw/m68k: add Nubus support

This patch adds basic support for the NuBus bus. This is used by 680x0
Macintosh.

Co-developed-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Message-Id: <address@hidden>


  Commit: 8ac919a065418d8f43bb2865d53d38b66a398846
      
https://github.com/qemu/qemu/commit/8ac919a065418d8f43bb2865d53d38b66a398846
  Author: Laurent Vivier <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M MAINTAINERS
    M arch_init.c
    M hw/display/Kconfig
    M hw/display/Makefile.objs
    A hw/display/macfb.c
    M hw/m68k/Kconfig
    A include/hw/display/macfb.h
    M qemu-options.hx
    M vl.c

  Log Message:
  -----------
  hw/m68k: add Nubus macfb video card

This patch adds support for a graphic framebuffer device.
This device can be added as a sysbus device or as a NuBus device.

It is accessed as a framebuffer but the color palette can be set.

Co-developed-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>
Reviewed-by: Hervé Poussineau <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Message-Id: <address@hidden>


  Commit: c701ec626c00ef73028a37a44b3d49e9b098a888
      
https://github.com/qemu/qemu/commit/c701ec626c00ef73028a37a44b3d49e9b098a888
  Author: Laurent Vivier <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M MAINTAINERS
    M hw/block/Kconfig
    M hw/block/Makefile.objs
    A hw/block/swim.c
    M hw/m68k/Kconfig
    A include/hw/block/swim.h

  Log Message:
  -----------
  hw/m68k: add a dummy SWIM floppy controller

SWIM (Sander-Wozniak Integrated Machine) is the floppy controller of
the 680x0 Macintosh.

This patch introduces only the basic support: it allows to switch from
IWM (Integrated WOZ Machine) mode to the SWIM mode and makes the linux
driver happy.

It cannot read any floppy image.

Co-developed-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>
Reviewed-by: Hervé Poussineau <address@hidden>
Message-Id: <address@hidden>


  Commit: 04e7ca8d0f15a1c185f7b4b5c0de797730c2ed86
      
https://github.com/qemu/qemu/commit/04e7ca8d0f15a1c185f7b4b5c0de797730c2ed86
  Author: Laurent Vivier <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M MAINTAINERS
    M hw/m68k/Kconfig
    M hw/m68k/Makefile.objs
    A hw/m68k/bootinfo.h
    A hw/m68k/q800.c

  Log Message:
  -----------
  hw/m68k: define Macintosh Quadra 800

If you want to test the machine, it doesn't yet boot a MacROM, but you can
boot a linux kernel from the command line.

You can install your own disk using debian-installer with:

    ./qemu-system-m68k \
    -M q800 \
    -serial none -serial mon:stdio \
    -m 1000M -drive file=m68k.qcow2,format=qcow2 \
    -net nic,model=dp83932,addr=09:00:07:12:34:57 \
    -append "console=ttyS0 vga=off" \
    -kernel vmlinux-4.15.0-2-m68k \
    -initrd initrd.gz \
    -drive file=debian-9.0-m68k-NETINST-1.iso \
    -drive file=m68k.qcow2,format=qcow2 \
    -nographic

If you use a graphic adapter instead of "-nographic", you can use "-g"
to set the size of the display (I use "-g 1600x800x24").

Tested-by: Philippe Mathieu-Daudé <address@hidden>
Co-developed-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>
Message-Id: <address@hidden>


  Commit: f7d85525f14b99aaa7bf561c9f3cf11c85a080c9
      
https://github.com/qemu/qemu/commit/f7d85525f14b99aaa7bf561c9f3cf11c85a080c9
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M tests/acceptance/boot_linux_console.py

  Log Message:
  -----------
  BootLinuxConsoleTest: Test the Quadra 800

This test boots a Linux kernel on a Quadra 800 board
and verify the serial is working.

Example:

  $ avocado --show=app,console run -t machine:q800 
tests/acceptance/boot_linux_console.py
  console: ABCFGHIJK
  console: Linux version 5.2.0-2-m68k (address@hidden) (gcc version 8.3.0 
(Debian 8.3.0-21)) #1 Debian 5.2.9-2 (2019-08-21)
  console: Detected Macintosh model: 35
  console: Apple Macintosh Quadra 800
  console: Built 1 zonelists, mobility grouping on.  Total pages: 32448
  console: Kernel command line: printk.time=0 console=ttyS0 vga=off
  [...]
  console: Calibrating delay loop... 1236.99 BogoMIPS (lpj=6184960)
  [...]
  console: NuBus: Scanning NuBus slots.
  console: Slot 9: Board resource not found!
  console: SCSI subsystem initialized
  console: clocksource: Switched to clocksource via1
  [...]
  console: macfb: framebuffer at 0xf9001000, mapped to 0x(ptrval), size 468k
  console: macfb: mode is 800x600x8, linelength=800
  console: Console: switching to colour frame buffer device 100x37
  console: fb0: DAFB frame buffer device
  console: pmac_zilog: 0.6 (Benjamin Herrenschmidt <address@hidden>)
  console: scc.0: ttyS0 at MMIO 0x50f0c022 (irq = 4, base_baud = 230400) is a 
Z85c30 ESCC - Serial port
  console: scc.1: ttyS1 at MMIO 0x50f0c020 (irq = 4, base_baud = 230400) is a 
Z85c30 ESCC - Serial port
  console: Non-volatile memory driver v1.3
  console: adb: Mac II ADB Driver v1.0 for Unified ADB
  console: mousedev: PS/2 mouse device common for all mice
  console: random: fast init done
  console: Detected ADB keyboard, type <unknown>.
  console: input: ADB keyboard as /devices/virtual/input/input0
  console: input: ADB mouse as /devices/virtual/input/input1
  console: rtc-generic rtc-generic: registered as rtc0
  console: ledtrig-cpu: registered to indicate activity on CPUs
  [...]
  console: rtc-generic rtc-generic: setting system clock to 2019-09-10T16:20:25 
UTC (1568132425)
  console: List of all partitions:
  console: No filesystem could mount root, tried:
  JOB TIME   : 2.91 s

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Tested-by: Cleber Rosa <address@hidden>
Reviewed-by: Cleber Rosa <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>


  Commit: f724de8dde4cc8d8159e4811714aeca222d9eb70
      
https://github.com/qemu/qemu/commit/f724de8dde4cc8d8159e4811714aeca222d9eb70
  Author: Peter Maydell <address@hidden>
  Date:   2019-10-29 (Tue, 29 Oct 2019)

  Changed paths:
    M MAINTAINERS
    M arch_init.c
    M default-configs/m68k-softmmu.mak
    M hw/Kconfig
    M hw/Makefile.objs
    M hw/block/Kconfig
    M hw/block/Makefile.objs
    A hw/block/swim.c
    M hw/display/Kconfig
    M hw/display/Makefile.objs
    A hw/display/macfb.c
    M hw/m68k/Kconfig
    M hw/m68k/Makefile.objs
    A hw/m68k/bootinfo.h
    A hw/m68k/q800.c
    M hw/misc/Kconfig
    M hw/misc/Makefile.objs
    A hw/misc/mac_via.c
    M hw/net/dp8393x.c
    A hw/nubus/Kconfig
    A hw/nubus/Makefile.objs
    A hw/nubus/mac-nubus-bridge.c
    A hw/nubus/nubus-bridge.c
    A hw/nubus/nubus-bus.c
    A hw/nubus/nubus-device.c
    M hw/scsi/esp.c
    A include/hw/block/swim.h
    A include/hw/display/macfb.h
    A include/hw/misc/mac_via.h
    A include/hw/nubus/mac-nubus-bridge.h
    A include/hw/nubus/nubus.h
    M include/hw/scsi/esp.h
    M qemu-options.hx
    M tests/acceptance/boot_linux_console.py
    M vl.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/vivier/tags/q800-branch-pull-request' 
into staging

Add Macintosh Quadra 800 machine in hw/m68k

# gpg: Signature made Mon 28 Oct 2019 18:14:25 GMT
# gpg:                using RSA key CD2F75DDC8E3A4DC2E4F5173F30C38BD3F2FBE3C
# gpg:                issuer "address@hidden"
# gpg: Good signature from "Laurent Vivier <address@hidden>" [full]
# gpg:                 aka "Laurent Vivier <address@hidden>" [full]
# gpg:                 aka "Laurent Vivier (Red Hat) <address@hidden>" [full]
# Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F  5173 F30C 38BD 3F2F BE3C

* remotes/vivier/tags/q800-branch-pull-request:
  BootLinuxConsoleTest: Test the Quadra 800
  hw/m68k: define Macintosh Quadra 800
  hw/m68k: add a dummy SWIM floppy controller
  hw/m68k: add Nubus macfb video card
  hw/m68k: add Nubus support
  hw/m68k: implement ADB bus support for via
  hw/m68k: add VIA support
  dp8393x: manage big endian bus
  esp: add pseudo-DMA as used by Macintosh
  esp: move get_cmd() post-DMA code to get_cmd_cb()
  esp: move handle_ti_cmd() cleanup code to esp_do_dma().

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/4599cb953c97...f724de8dde4c



reply via email to

[Prev in Thread] Current Thread [Next in Thread]