[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] 154074: esp: move handle_ti_cmd() cleanup code to esp_do_d...,
Peter Maydell <=