Pull request trivial patches 20200901
-----BEGIN PGP SIGNATURE----- iQJGBAABCAAwFiEEzS913cjjpNwuT1Fz8ww4vT8vvjwFAl9OVfsSHGxhdXJlbnRA dml2aWVyLmV1AAoJEPMMOL0/L748Dz4P/ipYUkZ6soIvoJKT5Ds9WfGy3KjrhMTw 4Q/xUiyffuI0atTQ5y4OgCNH5weAtFdR5C5qk1fCIoKGF3RJ3DHgDCmUyP78o4Uo T+VQGjkvIrRRgUl40d2fsVx2jBMGsvSiC3ZoeqOViblR0ejF4r5LdkR4n+k9qUUS OgT7ifZI0qvr3uh4kX6JqMIKqyuq5O1SWu0aiA/IMxhFvtIaFwqY2i2Txq7CqmBg aKCJH4M4TOCpX6iR0YZ0uyA7QcbAU1yyqbaYO4048murE7CEVp2u+YGITEggTw+/ xWISeCHaKb5tz3Y/F1YniLXcZ8xJ47pKQ27SulPuKPaeMcSieY67TUNOlum/Q8K7 yPV8klLkLZlgD0FmAECQopL1D3RFyHahaMuOkuss3+7qGJIkQVmUWp7e2QNBAORt pxX/NE4t1H62uBGRo+COc41PBtNnVoK/o6/NSftDW6V01Iv20ee8r6BK00DfeyPu T5+NfLpje2s3P46tO1+4nKFhtX4IYjvbJr1xq3gNsBqHsj6gwTkaNT5JhX/4QLVI oH5oQxPQ6QcDGYb6b4wPVtRYqGg1IvXgrr+j3e+n5CNzRq3XTL2QpaXnBjdf/uUj 5B/lEPbTctDyxOC5K19M3SXfx5ycmogzm/TBoTj2JoxyD/A5+MMWUgKTZwViUuMM xooMRbZWjmGJ =mJ/w -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/vivier2/tags/trivial-branch-for-5.2-pull-request' into staging Pull request trivial patches 20200901 # gpg: Signature made Tue 01 Sep 2020 15:08:59 BST # gpg: using RSA key CD2F75DDC8E3A4DC2E4F5173F30C38BD3F2FBE3C # gpg: issuer "laurent@vivier.eu" # gpg: Good signature from "Laurent Vivier <lvivier@redhat.com>" [full] # gpg: aka "Laurent Vivier <laurent@vivier.eu>" [full] # gpg: aka "Laurent Vivier (Red Hat) <lvivier@redhat.com>" [full] # Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F 5173 F30C 38BD 3F2F BE3C * remotes/vivier2/tags/trivial-branch-for-5.2-pull-request: (44 commits) docs/system: Fix grammar in documentation main-loop: Fix comment hw/display/vga:Remove redundant statement in vga_draw_graphic() hw/intc: fix default registers value in exynos4210_combiner_read() usb/bus: Remove dead assignment in usb_get_fw_dev_path() vfio/platform: Remove dead assignment in vfio_intp_interrupt() hw/net/virtio-net:Remove redundant statement in virtio_net_rsc_tcp_ctrl_check() hw/virtio/vhost-user:Remove dead assignment in scrub_shadow_regions() target/arm/translate-a64:Remove redundant statement in disas_simd_two_reg_misc_fp16() target/arm/translate-a64:Remove dead assignment in handle_scalar_simd_shli() hw/arm/omap1:Remove redundant statement in omap_clkdsp_read() hw/arm/virt-acpi-build:Remove dead assignment in build_madt() linux-user: Add strace support for printing OFD fcntl operations util/vfio-helpers: Unify trace-events size format hw/net/xilinx_axienet: Remove unused code hw/scsi/scsi-disk: Replace magic '512' value by BDRV_SECTOR_SIZE hw/ide/pci: Replace magic '512' value by BDRV_SECTOR_SIZE hw/ide/atapi: Replace magic '512' value by BDRV_SECTOR_SIZE hw/ide/ahci: Replace magic '512' value by BDRV_SECTOR_SIZE hw/ide/core: Trivial typo fix ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
071a6dba7d
9
.mailmap
9
.mailmap
@ -48,13 +48,14 @@ Alexander Graf <agraf@csgraf.de> <agraf@suse.de>
|
|||||||
Anthony Liguori <anthony@codemonkey.ws> Anthony Liguori <aliguori@us.ibm.com>
|
Anthony Liguori <anthony@codemonkey.ws> Anthony Liguori <aliguori@us.ibm.com>
|
||||||
Filip Bozuta <filip.bozuta@syrmia.com> <filip.bozuta@rt-rk.com.com>
|
Filip Bozuta <filip.bozuta@syrmia.com> <filip.bozuta@rt-rk.com.com>
|
||||||
Frederic Konrad <konrad@adacore.com> <fred.konrad@greensocs.com>
|
Frederic Konrad <konrad@adacore.com> <fred.konrad@greensocs.com>
|
||||||
|
Greg Kurz <groug@kaod.org> <gkurz@linux.vnet.ibm.com>
|
||||||
James Hogan <jhogan@kernel.org> <james.hogan@imgtec.com>
|
James Hogan <jhogan@kernel.org> <james.hogan@imgtec.com>
|
||||||
Leif Lindholm <leif@nuviainc.com> <leif.lindholm@linaro.org>
|
Leif Lindholm <leif@nuviainc.com> <leif.lindholm@linaro.org>
|
||||||
Radoslaw Biernacki <rad@semihalf.com> <radoslaw.biernacki@linaro.org>
|
Radoslaw Biernacki <rad@semihalf.com> <radoslaw.biernacki@linaro.org>
|
||||||
Paul Burton <pburton@wavecomp.com> <paul.burton@mips.com>
|
Paul Burton <paulburton@kernel.org> <paul.burton@mips.com>
|
||||||
Paul Burton <pburton@wavecomp.com> <paul.burton@imgtec.com>
|
Paul Burton <paulburton@kernel.org> <paul.burton@imgtec.com>
|
||||||
Paul Burton <pburton@wavecomp.com> <paul@archlinuxmips.org>
|
Paul Burton <paulburton@kernel.org> <paul@archlinuxmips.org>
|
||||||
Philippe Mathieu-Daudé <philmd@redhat.com> <f4bug@amsat.org>
|
Paul Burton <paulburton@kernel.org> <pburton@wavecomp.com>
|
||||||
Stefan Brankovic <stefan.brankovic@syrmia.com> <stefan.brankovic@rt-rk.com.com>
|
Stefan Brankovic <stefan.brankovic@syrmia.com> <stefan.brankovic@rt-rk.com.com>
|
||||||
Yongbok Kim <yongbok.kim@mips.com> <yongbok.kim@imgtec.com>
|
Yongbok Kim <yongbok.kim@mips.com> <yongbok.kim@imgtec.com>
|
||||||
|
|
||||||
|
@ -171,6 +171,7 @@ AVR TCG CPUs
|
|||||||
M: Michael Rolnik <mrolnik@gmail.com>
|
M: Michael Rolnik <mrolnik@gmail.com>
|
||||||
R: Sarah Harris <S.E.Harris@kent.ac.uk>
|
R: Sarah Harris <S.E.Harris@kent.ac.uk>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
F: docs/system/target-avr.rst
|
||||||
F: gdb-xml/avr-cpu.xml
|
F: gdb-xml/avr-cpu.xml
|
||||||
F: target/avr/
|
F: target/avr/
|
||||||
F: tests/acceptance/machine_avr6.py
|
F: tests/acceptance/machine_avr6.py
|
||||||
|
@ -1053,14 +1053,11 @@ static int vmdk_open_sparse(BlockDriverState *bs, BdrvChild *file, int flags,
|
|||||||
switch (magic) {
|
switch (magic) {
|
||||||
case VMDK3_MAGIC:
|
case VMDK3_MAGIC:
|
||||||
return vmdk_open_vmfs_sparse(bs, file, flags, errp);
|
return vmdk_open_vmfs_sparse(bs, file, flags, errp);
|
||||||
break;
|
|
||||||
case VMDK4_MAGIC:
|
case VMDK4_MAGIC:
|
||||||
return vmdk_open_vmdk4(bs, file, flags, options, errp);
|
return vmdk_open_vmdk4(bs, file, flags, options, errp);
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
error_setg(errp, "Image not in VMDK format");
|
error_setg(errp, "Image not in VMDK format");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,10 +95,10 @@ References
|
|||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
AMD Memory Encryption whitepaper:
|
AMD Memory Encryption whitepaper:
|
||||||
http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf
|
https://developer.amd.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf
|
||||||
|
|
||||||
Secure Encrypted Virtualization Key Management:
|
Secure Encrypted Virtualization Key Management:
|
||||||
[1] http://support.amd.com/TechDocs/55766_SEV-KM API_Specification.pdf
|
[1] http://developer.amd.com/wordpress/media/2017/11/55766_SEV-KM-API_Specification.pdf
|
||||||
|
|
||||||
KVM Forum slides:
|
KVM Forum slides:
|
||||||
http://www.linux-kvm.org/images/7/74/02x08A-Thomas_Lendacky-AMDs_Virtualizatoin_Memory_Encryption_Technology.pdf
|
http://www.linux-kvm.org/images/7/74/02x08A-Thomas_Lendacky-AMDs_Virtualizatoin_Memory_Encryption_Technology.pdf
|
||||||
|
@ -18,7 +18,7 @@ over-commit and, even if not implemented yet, migration support will be
|
|||||||
possible with some HW assistance.
|
possible with some HW assistance.
|
||||||
|
|
||||||
A project presentation accompany this document:
|
A project presentation accompany this document:
|
||||||
- http://events.linuxfoundation.org/sites/events/files/slides/lpc-2017-pvrdma-marcel-apfelbaum-yuval-shaia.pdf
|
- https://blog.linuxplumbersconf.org/2017/ocw/system/presentations/4730/original/lpc-2017-pvrdma-marcel-apfelbaum-yuval-shaia.pdf
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -57,12 +57,12 @@ macOS
|
|||||||
-----
|
-----
|
||||||
|
|
||||||
The project supports building with the two most recent versions of
|
The project supports building with the two most recent versions of
|
||||||
macOS, with the current homebrew package set available.
|
macOS, with the current Homebrew package set available.
|
||||||
|
|
||||||
FreeBSD
|
FreeBSD
|
||||||
-------
|
-------
|
||||||
|
|
||||||
The project aims to support the all the versions which are not end of
|
The project aims to support all versions which are not end of
|
||||||
life.
|
life.
|
||||||
|
|
||||||
NetBSD
|
NetBSD
|
||||||
@ -75,5 +75,5 @@ new major version is released.
|
|||||||
OpenBSD
|
OpenBSD
|
||||||
-------
|
-------
|
||||||
|
|
||||||
The project aims to support the all the versions which are not end of
|
The project aims to support all versions which are not end of
|
||||||
life.
|
life.
|
||||||
|
@ -17,21 +17,32 @@ https://github.com/seharris/qemu-avr-tests/blob/master/free-rtos/Demo/AVR_ATMega
|
|||||||
Following are examples of possible usages, assuming demo.elf is compiled for
|
Following are examples of possible usages, assuming demo.elf is compiled for
|
||||||
AVR cpu
|
AVR cpu
|
||||||
|
|
||||||
- Continuous non interrupted execution:
|
- Continuous non interrupted execution::
|
||||||
``qemu-system-avr -machine mega2560 -bios demo.elf``
|
|
||||||
|
|
||||||
- Continuous non interrupted execution with serial output into telnet window:
|
qemu-system-avr -machine mega2560 -bios demo.elf
|
||||||
``qemu-system-avr -machine mega2560 -bios demo.elf -serial
|
|
||||||
tcp::5678,server,nowait -nographic``
|
|
||||||
and then in another shell
|
|
||||||
``telnet localhost 5678``
|
|
||||||
|
|
||||||
- Debugging wit GDB debugger:
|
- Continuous non interrupted execution with serial output into telnet window::
|
||||||
``qemu-system-avr -machine mega2560 -bios demo.elf -s -S``
|
|
||||||
and then in another shell
|
|
||||||
``avr-gdb demo.elf``
|
|
||||||
and then within GDB shell
|
|
||||||
``target remote :1234``
|
|
||||||
|
|
||||||
- Print out executed instructions:
|
qemu-system-avr -M mega2560 -bios demo.elf -nographic \
|
||||||
``qemu-system-avr -machine mega2560 -bios demo.elf -d in_asm``
|
-serial tcp::5678,server,nowait
|
||||||
|
|
||||||
|
and then in another shell::
|
||||||
|
|
||||||
|
telnet localhost 5678
|
||||||
|
|
||||||
|
- Debugging wit GDB debugger::
|
||||||
|
|
||||||
|
qemu-system-avr -machine mega2560 -bios demo.elf -s -S
|
||||||
|
|
||||||
|
and then in another shell::
|
||||||
|
|
||||||
|
avr-gdb demo.elf
|
||||||
|
|
||||||
|
and then within GDB shell::
|
||||||
|
|
||||||
|
target remote :1234
|
||||||
|
|
||||||
|
- Print out executed instructions (that have not been translated by the JIT
|
||||||
|
compiler yet)::
|
||||||
|
|
||||||
|
qemu-system-avr -machine mega2560 -bios demo.elf -d in_asm
|
||||||
|
@ -1774,7 +1774,6 @@ static uint64_t omap_clkdsp_read(void *opaque, hwaddr addr,
|
|||||||
return s->clkm.dsp_rstct2;
|
return s->clkm.dsp_rstct2;
|
||||||
|
|
||||||
case 0x18: /* DSP_SYSST */
|
case 0x18: /* DSP_SYSST */
|
||||||
cpu = CPU(s->cpu);
|
|
||||||
return (s->clkm.clocking_scheme << 11) | s->clkm.cold_start |
|
return (s->clkm.clocking_scheme << 11) | s->clkm.cold_start |
|
||||||
(cpu->halted << 6); /* Quite useless... */
|
(cpu->halted << 6); /* Quite useless... */
|
||||||
}
|
}
|
||||||
|
@ -633,12 +633,11 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms)
|
|||||||
int madt_start = table_data->len;
|
int madt_start = table_data->len;
|
||||||
const MemMapEntry *memmap = vms->memmap;
|
const MemMapEntry *memmap = vms->memmap;
|
||||||
const int *irqmap = vms->irqmap;
|
const int *irqmap = vms->irqmap;
|
||||||
AcpiMultipleApicTable *madt;
|
|
||||||
AcpiMadtGenericDistributor *gicd;
|
AcpiMadtGenericDistributor *gicd;
|
||||||
AcpiMadtGenericMsiFrame *gic_msi;
|
AcpiMadtGenericMsiFrame *gic_msi;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
madt = acpi_data_push(table_data, sizeof *madt);
|
acpi_data_push(table_data, sizeof(AcpiMultipleApicTable));
|
||||||
|
|
||||||
gicd = acpi_data_push(table_data, sizeof *gicd);
|
gicd = acpi_data_push(table_data, sizeof *gicd);
|
||||||
gicd->type = ACPI_APIC_GENERIC_DISTRIBUTOR;
|
gicd->type = ACPI_APIC_GENERIC_DISTRIBUTOR;
|
||||||
|
@ -213,7 +213,6 @@ static uint32_t pflash_devid_query(PFlashCFI01 *pfl, hwaddr offset)
|
|||||||
default:
|
default:
|
||||||
trace_pflash_device_info(offset);
|
trace_pflash_device_info(offset);
|
||||||
return 0;
|
return 0;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
/* Replicate responses for each device in bank. */
|
/* Replicate responses for each device in bank. */
|
||||||
if (pfl->device_width < pfl->bank_width) {
|
if (pfl->device_width < pfl->bank_width) {
|
||||||
|
@ -64,7 +64,7 @@ void foreach_dynamic_sysbus_device(FindSysbusDeviceFunc *func, void *opaque)
|
|||||||
.opaque = opaque,
|
.opaque = opaque,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Loop through all sysbus devices that were spawened outside the machine */
|
/* Loop through all sysbus devices that were spawned outside the machine */
|
||||||
container = container_get(qdev_get_machine(), "/peripheral");
|
container = container_get(qdev_get_machine(), "/peripheral");
|
||||||
find_sysbus_device(container, &find);
|
find_sysbus_device(container, &find);
|
||||||
container = container_get(qdev_get_machine(), "/peripheral-anon");
|
container = container_get(qdev_get_machine(), "/peripheral-anon");
|
||||||
@ -199,6 +199,7 @@ void sysbus_init_mmio(SysBusDevice *dev, MemoryRegion *memory)
|
|||||||
|
|
||||||
MemoryRegion *sysbus_mmio_get_region(SysBusDevice *dev, int n)
|
MemoryRegion *sysbus_mmio_get_region(SysBusDevice *dev, int n)
|
||||||
{
|
{
|
||||||
|
assert(n >= 0 && n < QDEV_MAX_MMIO);
|
||||||
return dev->mmio[n].memory;
|
return dev->mmio[n].memory;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1637,7 +1637,6 @@ static int cirrus_vga_read_cr(CirrusVGAState * s, unsigned reg_index)
|
|||||||
return s->vga.cr[s->vga.cr_index];
|
return s->vga.cr[s->vga.cr_index];
|
||||||
case 0x26: // Attribute Controller Index Readback (R)
|
case 0x26: // Attribute Controller Index Readback (R)
|
||||||
return s->vga.ar_index & 0x3f;
|
return s->vga.ar_index & 0x3f;
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
qemu_log_mask(LOG_GUEST_ERROR,
|
qemu_log_mask(LOG_GUEST_ERROR,
|
||||||
"cirrus: inport cr_index 0x%02x\n", reg_index);
|
"cirrus: inport cr_index 0x%02x\n", reg_index);
|
||||||
|
@ -161,7 +161,6 @@ static int qxl_log_cmd_draw(PCIQXLDevice *qxl, QXLDrawable *draw, int group_id)
|
|||||||
switch (draw->type) {
|
switch (draw->type) {
|
||||||
case QXL_DRAW_COPY:
|
case QXL_DRAW_COPY:
|
||||||
return qxl_log_cmd_draw_copy(qxl, &draw->u.copy, group_id);
|
return qxl_log_cmd_draw_copy(qxl, &draw->u.copy, group_id);
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -180,7 +179,6 @@ static int qxl_log_cmd_draw_compat(PCIQXLDevice *qxl, QXLCompatDrawable *draw,
|
|||||||
switch (draw->type) {
|
switch (draw->type) {
|
||||||
case QXL_DRAW_COPY:
|
case QXL_DRAW_COPY:
|
||||||
return qxl_log_cmd_draw_copy(qxl, &draw->u.copy, group_id);
|
return qxl_log_cmd_draw_copy(qxl, &draw->u.copy, group_id);
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1674,7 +1674,6 @@ static void vga_draw_graphic(VGACommonState *s, int full_update)
|
|||||||
if (!(s->cr[VGA_CRTC_MODE] & 2)) {
|
if (!(s->cr[VGA_CRTC_MODE] & 2)) {
|
||||||
addr = (addr & ~0x8000) | ((y1 & 2) << 14);
|
addr = (addr & ~0x8000) | ((y1 & 2) << 14);
|
||||||
}
|
}
|
||||||
update = full_update;
|
|
||||||
page0 = addr & s->vbe_size_mask;
|
page0 = addr & s->vbe_size_mask;
|
||||||
page1 = (addr + bwidth - 1) & s->vbe_size_mask;
|
page1 = (addr + bwidth - 1) & s->vbe_size_mask;
|
||||||
if (full_update) {
|
if (full_update) {
|
||||||
|
@ -51,11 +51,9 @@ static uint8_t max7310_rx(I2CSlave *i2c)
|
|||||||
switch (s->command) {
|
switch (s->command) {
|
||||||
case 0x00: /* Input port */
|
case 0x00: /* Input port */
|
||||||
return s->level ^ s->polarity;
|
return s->level ^ s->polarity;
|
||||||
break;
|
|
||||||
|
|
||||||
case 0x01: /* Output port */
|
case 0x01: /* Output port */
|
||||||
return s->level & ~s->direction;
|
return s->level & ~s->direction;
|
||||||
break;
|
|
||||||
|
|
||||||
case 0x02: /* Polarity inversion */
|
case 0x02: /* Polarity inversion */
|
||||||
return s->polarity;
|
return s->polarity;
|
||||||
@ -65,7 +63,6 @@ static uint8_t max7310_rx(I2CSlave *i2c)
|
|||||||
|
|
||||||
case 0x04: /* Timeout */
|
case 0x04: /* Timeout */
|
||||||
return s->status;
|
return s->status;
|
||||||
break;
|
|
||||||
|
|
||||||
case 0xff: /* Reserved */
|
case 0xff: /* Reserved */
|
||||||
return 0xff;
|
return 0xff;
|
||||||
|
@ -3168,7 +3168,6 @@ static int vtd_irte_get(IntelIOMMUState *iommu, uint16_t index,
|
|||||||
index, entry->irte.sid_vtype);
|
index, entry->irte.sid_vtype);
|
||||||
/* Take this as verification failure. */
|
/* Take this as verification failure. */
|
||||||
return -VTD_FR_IR_SID_ERR;
|
return -VTD_FR_IR_SID_ERR;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@ static void kvm_ioapic_put(IOAPICCommonState *s)
|
|||||||
|
|
||||||
ret = kvm_vm_ioctl(kvm_state, KVM_SET_IRQCHIP, &chip);
|
ret = kvm_vm_ioctl(kvm_state, KVM_SET_IRQCHIP, &chip);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
fprintf(stderr, "KVM_GET_IRQCHIP failed: %s\n", strerror(ret));
|
fprintf(stderr, "KVM_SET_IRQCHIP failed: %s\n", strerror(ret));
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1151,7 +1151,7 @@ static void process_ncq_command(AHCIState *s, int port, uint8_t *cmd_fis,
|
|||||||
if (!ncq_tfs->sector_count) {
|
if (!ncq_tfs->sector_count) {
|
||||||
ncq_tfs->sector_count = 0x10000;
|
ncq_tfs->sector_count = 0x10000;
|
||||||
}
|
}
|
||||||
size = ncq_tfs->sector_count * 512;
|
size = ncq_tfs->sector_count * BDRV_SECTOR_SIZE;
|
||||||
ahci_populate_sglist(ad, &ncq_tfs->sglist, ncq_tfs->cmdh, size, 0);
|
ahci_populate_sglist(ad, &ncq_tfs->sglist, ncq_tfs->cmdh, size, 0);
|
||||||
|
|
||||||
if (ncq_tfs->sglist.size < size) {
|
if (ncq_tfs->sglist.size < size) {
|
||||||
@ -1703,7 +1703,8 @@ static int ahci_state_post_load(void *opaque, int version_id)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
ahci_populate_sglist(ncq_tfs->drive, &ncq_tfs->sglist,
|
ahci_populate_sglist(ncq_tfs->drive, &ncq_tfs->sglist,
|
||||||
ncq_tfs->cmdh, ncq_tfs->sector_count * 512,
|
ncq_tfs->cmdh,
|
||||||
|
ncq_tfs->sector_count * BDRV_SECTOR_SIZE,
|
||||||
0);
|
0);
|
||||||
if (ncq_tfs->sector_count != ncq_tfs->sglist.size >> 9) {
|
if (ncq_tfs->sector_count != ncq_tfs->sglist.size >> 9) {
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -824,9 +824,9 @@ static void cmd_get_configuration(IDEState *s, uint8_t *buf)
|
|||||||
*
|
*
|
||||||
* Only a problem if the feature/profiles grow.
|
* Only a problem if the feature/profiles grow.
|
||||||
*/
|
*/
|
||||||
if (max_len > 512) {
|
if (max_len > BDRV_SECTOR_SIZE) {
|
||||||
/* XXX: assume 1 sector */
|
/* XXX: assume 1 sector */
|
||||||
max_len = 512;
|
max_len = BDRV_SECTOR_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(buf, 0, max_len);
|
memset(buf, 0, max_len);
|
||||||
@ -1186,8 +1186,8 @@ static void cmd_read_dvd_structure(IDEState *s, uint8_t* buf)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(buf, 0, max_len > IDE_DMA_BUF_SECTORS * 512 + 4 ?
|
memset(buf, 0, max_len > IDE_DMA_BUF_SECTORS * BDRV_SECTOR_SIZE + 4 ?
|
||||||
IDE_DMA_BUF_SECTORS * 512 + 4 : max_len);
|
IDE_DMA_BUF_SECTORS * BDRV_SECTOR_SIZE + 4 : max_len);
|
||||||
|
|
||||||
switch (format) {
|
switch (format) {
|
||||||
case 0x00 ... 0x7f:
|
case 0x00 ... 0x7f:
|
||||||
|
@ -709,7 +709,7 @@ void ide_cancel_dma_sync(IDEState *s)
|
|||||||
/*
|
/*
|
||||||
* We can't cancel Scatter Gather DMA in the middle of the
|
* We can't cancel Scatter Gather DMA in the middle of the
|
||||||
* operation or a partial (not full) DMA transfer would reach
|
* operation or a partial (not full) DMA transfer would reach
|
||||||
* the storage so we wait for completion instead (we beahve
|
* the storage so we wait for completion instead (we behave
|
||||||
* like if the DMA was completed by the time the guest trying
|
* like if the DMA was completed by the time the guest trying
|
||||||
* to cancel dma with bmdma_cmd_writeb with BM_CMD_START not
|
* to cancel dma with bmdma_cmd_writeb with BM_CMD_START not
|
||||||
* set).
|
* set).
|
||||||
|
@ -138,7 +138,7 @@ static int32_t bmdma_prepare_buf(const IDEDMA *dma, int32_t limit)
|
|||||||
int l, len;
|
int l, len;
|
||||||
|
|
||||||
pci_dma_sglist_init(&s->sg, pci_dev,
|
pci_dma_sglist_init(&s->sg, pci_dev,
|
||||||
s->nsector / (BMDMA_PAGE_SIZE / 512) + 1);
|
s->nsector / (BMDMA_PAGE_SIZE / BDRV_SECTOR_SIZE) + 1);
|
||||||
s->io_buffer_size = 0;
|
s->io_buffer_size = 0;
|
||||||
for(;;) {
|
for(;;) {
|
||||||
if (bm->cur_prd_len == 0) {
|
if (bm->cur_prd_len == 0) {
|
||||||
|
@ -192,10 +192,8 @@ static uint64_t pxa2xx_keypad_read(void *opaque, hwaddr offset,
|
|||||||
s->kpc &= ~(KPC_DI);
|
s->kpc &= ~(KPC_DI);
|
||||||
qemu_irq_lower(s->irq);
|
qemu_irq_lower(s->irq);
|
||||||
return tmp;
|
return tmp;
|
||||||
break;
|
|
||||||
case KPDK:
|
case KPDK:
|
||||||
return s->kpdk;
|
return s->kpdk;
|
||||||
break;
|
|
||||||
case KPREC:
|
case KPREC:
|
||||||
tmp = s->kprec;
|
tmp = s->kprec;
|
||||||
if(tmp & KPREC_OF1)
|
if(tmp & KPREC_OF1)
|
||||||
@ -207,31 +205,23 @@ static uint64_t pxa2xx_keypad_read(void *opaque, hwaddr offset,
|
|||||||
if(tmp & KPREC_UF0)
|
if(tmp & KPREC_UF0)
|
||||||
s->kprec &= ~(KPREC_UF0);
|
s->kprec &= ~(KPREC_UF0);
|
||||||
return tmp;
|
return tmp;
|
||||||
break;
|
|
||||||
case KPMK:
|
case KPMK:
|
||||||
tmp = s->kpmk;
|
tmp = s->kpmk;
|
||||||
if(tmp & KPMK_MKP)
|
if(tmp & KPMK_MKP)
|
||||||
s->kpmk &= ~(KPMK_MKP);
|
s->kpmk &= ~(KPMK_MKP);
|
||||||
return tmp;
|
return tmp;
|
||||||
break;
|
|
||||||
case KPAS:
|
case KPAS:
|
||||||
return s->kpas;
|
return s->kpas;
|
||||||
break;
|
|
||||||
case KPASMKP0:
|
case KPASMKP0:
|
||||||
return s->kpasmkp[0];
|
return s->kpasmkp[0];
|
||||||
break;
|
|
||||||
case KPASMKP1:
|
case KPASMKP1:
|
||||||
return s->kpasmkp[1];
|
return s->kpasmkp[1];
|
||||||
break;
|
|
||||||
case KPASMKP2:
|
case KPASMKP2:
|
||||||
return s->kpasmkp[2];
|
return s->kpasmkp[2];
|
||||||
break;
|
|
||||||
case KPASMKP3:
|
case KPASMKP3:
|
||||||
return s->kpasmkp[3];
|
return s->kpasmkp[3];
|
||||||
break;
|
|
||||||
case KPKDI:
|
case KPKDI:
|
||||||
return s->kpkdi;
|
return s->kpkdi;
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
qemu_log_mask(LOG_GUEST_ERROR,
|
qemu_log_mask(LOG_GUEST_ERROR,
|
||||||
"%s: Bad read offset 0x%"HWADDR_PRIx"\n",
|
"%s: Bad read offset 0x%"HWADDR_PRIx"\n",
|
||||||
|
@ -1290,7 +1290,6 @@ static uint32_t nvic_readl(NVICState *s, uint32_t offset, MemTxAttrs attrs)
|
|||||||
case 0xd90: /* MPU_TYPE */
|
case 0xd90: /* MPU_TYPE */
|
||||||
/* Unified MPU; if the MPU is not present this value is zero */
|
/* Unified MPU; if the MPU is not present this value is zero */
|
||||||
return cpu->pmsav7_dregion << 8;
|
return cpu->pmsav7_dregion << 8;
|
||||||
break;
|
|
||||||
case 0xd94: /* MPU_CTRL */
|
case 0xd94: /* MPU_CTRL */
|
||||||
return cpu->env.v7m.mpu_ctrl[attrs.secure];
|
return cpu->env.v7m.mpu_ctrl[attrs.secure];
|
||||||
case 0xd98: /* MPU_RNR */
|
case 0xd98: /* MPU_RNR */
|
||||||
|
@ -229,7 +229,6 @@ exynos4210_combiner_read(void *opaque, hwaddr offset, unsigned size)
|
|||||||
TARGET_FMT_plx "offset\n", offset);
|
TARGET_FMT_plx "offset\n", offset);
|
||||||
}
|
}
|
||||||
val = s->reg_set[offset >> 2];
|
val = s->reg_set[offset >> 2];
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
@ -158,8 +158,8 @@ static void isa_superio_realize(DeviceState *dev, Error **errp)
|
|||||||
if (k->ide.get_irq) {
|
if (k->ide.get_irq) {
|
||||||
qdev_prop_set_uint32(d, "irq", k->ide.get_irq(sio, 0));
|
qdev_prop_set_uint32(d, "irq", k->ide.get_irq(sio, 0));
|
||||||
}
|
}
|
||||||
isa_realize_and_unref(isa, bus, &error_fatal);
|
|
||||||
object_property_add_child(OBJECT(sio), "isa-ide", OBJECT(isa));
|
object_property_add_child(OBJECT(sio), "isa-ide", OBJECT(isa));
|
||||||
|
isa_realize_and_unref(isa, bus, &error_fatal);
|
||||||
sio->ide = isa;
|
sio->ide = isa;
|
||||||
trace_superio_create_ide(0,
|
trace_superio_create_ide(0,
|
||||||
k->ide.get_iobase ?
|
k->ide.get_iobase ?
|
||||||
|
@ -523,6 +523,7 @@ void can_sja_mem_write(CanSJA1000State *s, hwaddr addr, uint64_t val,
|
|||||||
break;
|
break;
|
||||||
case 16: /* RX frame information addr16-28. */
|
case 16: /* RX frame information addr16-28. */
|
||||||
s->status_pel |= (1 << 5); /* Set transmit status. */
|
s->status_pel |= (1 << 5); /* Set transmit status. */
|
||||||
|
/* fallthrough */
|
||||||
case 17 ... 28:
|
case 17 ... 28:
|
||||||
if (s->mode & 0x01) { /* Reset mode */
|
if (s->mode & 0x01) { /* Reset mode */
|
||||||
if (addr < 24) {
|
if (addr < 24) {
|
||||||
@ -620,6 +621,7 @@ void can_sja_mem_write(CanSJA1000State *s, hwaddr addr, uint64_t val,
|
|||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
s->status_bas |= (1 << 5); /* Set transmit status. */
|
s->status_bas |= (1 << 5); /* Set transmit status. */
|
||||||
|
/* fallthrough */
|
||||||
case 11 ... 19:
|
case 11 ... 19:
|
||||||
if ((s->control & 0x01) == 0) { /* Operation mode */
|
if ((s->control & 0x01) == 0) { /* Operation mode */
|
||||||
s->tx_buff[addr - 10] = val; /* Store to TX buffer directly. */
|
s->tx_buff[addr - 10] = val; /* Store to TX buffer directly. */
|
||||||
|
@ -931,10 +931,8 @@ static uint32_t do_mac_read(lan9118_state *s, int reg)
|
|||||||
| (s->conf.macaddr.a[2] << 16) | (s->conf.macaddr.a[3] << 24);
|
| (s->conf.macaddr.a[2] << 16) | (s->conf.macaddr.a[3] << 24);
|
||||||
case MAC_HASHH:
|
case MAC_HASHH:
|
||||||
return s->mac_hashh;
|
return s->mac_hashh;
|
||||||
break;
|
|
||||||
case MAC_HASHL:
|
case MAC_HASHL:
|
||||||
return s->mac_hashl;
|
return s->mac_hashl;
|
||||||
break;
|
|
||||||
case MAC_MII_ACC:
|
case MAC_MII_ACC:
|
||||||
return s->mac_mii_acc;
|
return s->mac_mii_acc;
|
||||||
case MAC_MII_DATA:
|
case MAC_MII_DATA:
|
||||||
|
@ -2075,7 +2075,6 @@ static int virtio_net_rsc_tcp_ctrl_check(VirtioNetRscChain *chain,
|
|||||||
tcp_flag = htons(tcp->th_offset_flags);
|
tcp_flag = htons(tcp->th_offset_flags);
|
||||||
tcp_hdr = (tcp_flag & VIRTIO_NET_TCP_HDR_LENGTH) >> 10;
|
tcp_hdr = (tcp_flag & VIRTIO_NET_TCP_HDR_LENGTH) >> 10;
|
||||||
tcp_flag &= VIRTIO_NET_TCP_FLAG;
|
tcp_flag &= VIRTIO_NET_TCP_FLAG;
|
||||||
tcp_flag = htons(tcp->th_offset_flags) & 0x3F;
|
|
||||||
if (tcp_flag & TH_SYN) {
|
if (tcp_flag & TH_SYN) {
|
||||||
chain->stat.tcp_syn++;
|
chain->stat.tcp_syn++;
|
||||||
return RSC_BYPASS;
|
return RSC_BYPASS;
|
||||||
|
@ -54,7 +54,6 @@
|
|||||||
TYPE_XILINX_AXI_ENET_CONTROL_STREAM)
|
TYPE_XILINX_AXI_ENET_CONTROL_STREAM)
|
||||||
|
|
||||||
/* Advertisement control register. */
|
/* Advertisement control register. */
|
||||||
#define ADVERTISE_10HALF 0x0020 /* Try for 10mbps half-duplex */
|
|
||||||
#define ADVERTISE_10FULL 0x0040 /* Try for 10mbps full-duplex */
|
#define ADVERTISE_10FULL 0x0040 /* Try for 10mbps full-duplex */
|
||||||
#define ADVERTISE_100HALF 0x0080 /* Try for 100mbps half-duplex */
|
#define ADVERTISE_100HALF 0x0080 /* Try for 100mbps half-duplex */
|
||||||
#define ADVERTISE_100FULL 0x0100 /* Try for 100mbps full-duplex */
|
#define ADVERTISE_100FULL 0x0100 /* Try for 100mbps full-duplex */
|
||||||
@ -169,28 +168,6 @@ tdk_init(struct PHY *phy)
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct MDIOBus {
|
struct MDIOBus {
|
||||||
/* bus. */
|
|
||||||
int mdc;
|
|
||||||
int mdio;
|
|
||||||
|
|
||||||
/* decoder. */
|
|
||||||
enum {
|
|
||||||
PREAMBLE,
|
|
||||||
SOF,
|
|
||||||
OPC,
|
|
||||||
ADDR,
|
|
||||||
REQ,
|
|
||||||
TURNAROUND,
|
|
||||||
DATA
|
|
||||||
} state;
|
|
||||||
unsigned int drive;
|
|
||||||
|
|
||||||
unsigned int cnt;
|
|
||||||
unsigned int addr;
|
|
||||||
unsigned int opc;
|
|
||||||
unsigned int req;
|
|
||||||
unsigned int data;
|
|
||||||
|
|
||||||
struct PHY *devs[32];
|
struct PHY *devs[32];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -71,7 +71,7 @@ typedef struct SCSIDiskClass {
|
|||||||
|
|
||||||
typedef struct SCSIDiskReq {
|
typedef struct SCSIDiskReq {
|
||||||
SCSIRequest req;
|
SCSIRequest req;
|
||||||
/* Both sector and sector_count are in terms of qemu 512 byte blocks. */
|
/* Both sector and sector_count are in terms of BDRV_SECTOR_SIZE bytes. */
|
||||||
uint64_t sector;
|
uint64_t sector;
|
||||||
uint32_t sector_count;
|
uint32_t sector_count;
|
||||||
uint32_t buflen;
|
uint32_t buflen;
|
||||||
@ -141,7 +141,7 @@ static void scsi_init_iovec(SCSIDiskReq *r, size_t size)
|
|||||||
r->buflen = size;
|
r->buflen = size;
|
||||||
r->iov.iov_base = blk_blockalign(s->qdev.conf.blk, r->buflen);
|
r->iov.iov_base = blk_blockalign(s->qdev.conf.blk, r->buflen);
|
||||||
}
|
}
|
||||||
r->iov.iov_len = MIN(r->sector_count * 512, r->buflen);
|
r->iov.iov_len = MIN(r->sector_count * BDRV_SECTOR_SIZE, r->buflen);
|
||||||
qemu_iovec_init_external(&r->qiov, &r->iov, 1);
|
qemu_iovec_init_external(&r->qiov, &r->iov, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -311,7 +311,7 @@ static void scsi_read_complete_noio(SCSIDiskReq *r, int ret)
|
|||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
n = r->qiov.size / 512;
|
n = r->qiov.size / BDRV_SECTOR_SIZE;
|
||||||
r->sector += n;
|
r->sector += n;
|
||||||
r->sector_count -= n;
|
r->sector_count -= n;
|
||||||
scsi_req_data(&r->req, r->qiov.size);
|
scsi_req_data(&r->req, r->qiov.size);
|
||||||
@ -505,7 +505,7 @@ static void scsi_write_complete_noio(SCSIDiskReq *r, int ret)
|
|||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
n = r->qiov.size / 512;
|
n = r->qiov.size / BDRV_SECTOR_SIZE;
|
||||||
r->sector += n;
|
r->sector += n;
|
||||||
r->sector_count -= n;
|
r->sector_count -= n;
|
||||||
if (r->sector_count == 0) {
|
if (r->sector_count == 0) {
|
||||||
@ -1284,7 +1284,7 @@ static int scsi_disk_emulate_mode_sense(SCSIDiskReq *r, uint8_t *outbuf)
|
|||||||
} else { /* MODE_SENSE_10 */
|
} else { /* MODE_SENSE_10 */
|
||||||
outbuf[7] = 8; /* Block descriptor length */
|
outbuf[7] = 8; /* Block descriptor length */
|
||||||
}
|
}
|
||||||
nb_sectors /= (s->qdev.blocksize / 512);
|
nb_sectors /= (s->qdev.blocksize / BDRV_SECTOR_SIZE);
|
||||||
if (nb_sectors > 0xffffff) {
|
if (nb_sectors > 0xffffff) {
|
||||||
nb_sectors = 0;
|
nb_sectors = 0;
|
||||||
}
|
}
|
||||||
@ -1342,7 +1342,7 @@ static int scsi_disk_emulate_read_toc(SCSIRequest *req, uint8_t *outbuf)
|
|||||||
start_track = req->cmd.buf[6];
|
start_track = req->cmd.buf[6];
|
||||||
blk_get_geometry(s->qdev.conf.blk, &nb_sectors);
|
blk_get_geometry(s->qdev.conf.blk, &nb_sectors);
|
||||||
trace_scsi_disk_emulate_read_toc(start_track, format, msf >> 1);
|
trace_scsi_disk_emulate_read_toc(start_track, format, msf >> 1);
|
||||||
nb_sectors /= s->qdev.blocksize / 512;
|
nb_sectors /= s->qdev.blocksize / BDRV_SECTOR_SIZE;
|
||||||
switch (format) {
|
switch (format) {
|
||||||
case 0:
|
case 0:
|
||||||
toclen = cdrom_read_toc(nb_sectors, outbuf, msf, start_track);
|
toclen = cdrom_read_toc(nb_sectors, outbuf, msf, start_track);
|
||||||
@ -1738,9 +1738,10 @@ static void scsi_write_same_complete(void *opaque, int ret)
|
|||||||
|
|
||||||
block_acct_done(blk_get_stats(s->qdev.conf.blk), &r->acct);
|
block_acct_done(blk_get_stats(s->qdev.conf.blk), &r->acct);
|
||||||
|
|
||||||
data->nb_sectors -= data->iov.iov_len / 512;
|
data->nb_sectors -= data->iov.iov_len / BDRV_SECTOR_SIZE;
|
||||||
data->sector += data->iov.iov_len / 512;
|
data->sector += data->iov.iov_len / BDRV_SECTOR_SIZE;
|
||||||
data->iov.iov_len = MIN(data->nb_sectors * 512, data->iov.iov_len);
|
data->iov.iov_len = MIN(data->nb_sectors * BDRV_SECTOR_SIZE,
|
||||||
|
data->iov.iov_len);
|
||||||
if (data->iov.iov_len) {
|
if (data->iov.iov_len) {
|
||||||
block_acct_start(blk_get_stats(s->qdev.conf.blk), &r->acct,
|
block_acct_start(blk_get_stats(s->qdev.conf.blk), &r->acct,
|
||||||
data->iov.iov_len, BLOCK_ACCT_WRITE);
|
data->iov.iov_len, BLOCK_ACCT_WRITE);
|
||||||
@ -1805,9 +1806,10 @@ static void scsi_disk_emulate_write_same(SCSIDiskReq *r, uint8_t *inbuf)
|
|||||||
|
|
||||||
data = g_new0(WriteSameCBData, 1);
|
data = g_new0(WriteSameCBData, 1);
|
||||||
data->r = r;
|
data->r = r;
|
||||||
data->sector = r->req.cmd.lba * (s->qdev.blocksize / 512);
|
data->sector = r->req.cmd.lba * (s->qdev.blocksize / BDRV_SECTOR_SIZE);
|
||||||
data->nb_sectors = nb_sectors * (s->qdev.blocksize / 512);
|
data->nb_sectors = nb_sectors * (s->qdev.blocksize / BDRV_SECTOR_SIZE);
|
||||||
data->iov.iov_len = MIN(data->nb_sectors * 512, SCSI_WRITE_SAME_MAX);
|
data->iov.iov_len = MIN(data->nb_sectors * BDRV_SECTOR_SIZE,
|
||||||
|
SCSI_WRITE_SAME_MAX);
|
||||||
data->iov.iov_base = buf = blk_blockalign(s->qdev.conf.blk,
|
data->iov.iov_base = buf = blk_blockalign(s->qdev.conf.blk,
|
||||||
data->iov.iov_len);
|
data->iov.iov_len);
|
||||||
qemu_iovec_init_external(&data->qiov, &data->iov, 1);
|
qemu_iovec_init_external(&data->qiov, &data->iov, 1);
|
||||||
@ -1980,7 +1982,7 @@ static int32_t scsi_disk_emulate_command(SCSIRequest *req, uint8_t *buf)
|
|||||||
if ((req->cmd.buf[8] & 1) == 0 && req->cmd.lba) {
|
if ((req->cmd.buf[8] & 1) == 0 && req->cmd.lba) {
|
||||||
goto illegal_request;
|
goto illegal_request;
|
||||||
}
|
}
|
||||||
nb_sectors /= s->qdev.blocksize / 512;
|
nb_sectors /= s->qdev.blocksize / BDRV_SECTOR_SIZE;
|
||||||
/* Returned value is the address of the last sector. */
|
/* Returned value is the address of the last sector. */
|
||||||
nb_sectors--;
|
nb_sectors--;
|
||||||
/* Remember the new size for read/write sanity checking. */
|
/* Remember the new size for read/write sanity checking. */
|
||||||
@ -2049,7 +2051,7 @@ static int32_t scsi_disk_emulate_command(SCSIRequest *req, uint8_t *buf)
|
|||||||
if ((req->cmd.buf[14] & 1) == 0 && req->cmd.lba) {
|
if ((req->cmd.buf[14] & 1) == 0 && req->cmd.lba) {
|
||||||
goto illegal_request;
|
goto illegal_request;
|
||||||
}
|
}
|
||||||
nb_sectors /= s->qdev.blocksize / 512;
|
nb_sectors /= s->qdev.blocksize / BDRV_SECTOR_SIZE;
|
||||||
/* Returned value is the address of the last sector. */
|
/* Returned value is the address of the last sector. */
|
||||||
nb_sectors--;
|
nb_sectors--;
|
||||||
/* Remember the new size for read/write sanity checking. */
|
/* Remember the new size for read/write sanity checking. */
|
||||||
@ -2180,8 +2182,8 @@ static int32_t scsi_disk_dma_command(SCSIRequest *req, uint8_t *buf)
|
|||||||
if (!check_lba_range(s, r->req.cmd.lba, len)) {
|
if (!check_lba_range(s, r->req.cmd.lba, len)) {
|
||||||
goto illegal_lba;
|
goto illegal_lba;
|
||||||
}
|
}
|
||||||
r->sector = r->req.cmd.lba * (s->qdev.blocksize / 512);
|
r->sector = r->req.cmd.lba * (s->qdev.blocksize / BDRV_SECTOR_SIZE);
|
||||||
r->sector_count = len * (s->qdev.blocksize / 512);
|
r->sector_count = len * (s->qdev.blocksize / BDRV_SECTOR_SIZE);
|
||||||
break;
|
break;
|
||||||
case WRITE_6:
|
case WRITE_6:
|
||||||
case WRITE_10:
|
case WRITE_10:
|
||||||
@ -2211,8 +2213,8 @@ static int32_t scsi_disk_dma_command(SCSIRequest *req, uint8_t *buf)
|
|||||||
if (!check_lba_range(s, r->req.cmd.lba, len)) {
|
if (!check_lba_range(s, r->req.cmd.lba, len)) {
|
||||||
goto illegal_lba;
|
goto illegal_lba;
|
||||||
}
|
}
|
||||||
r->sector = r->req.cmd.lba * (s->qdev.blocksize / 512);
|
r->sector = r->req.cmd.lba * (s->qdev.blocksize / BDRV_SECTOR_SIZE);
|
||||||
r->sector_count = len * (s->qdev.blocksize / 512);
|
r->sector_count = len * (s->qdev.blocksize / BDRV_SECTOR_SIZE);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
abort();
|
abort();
|
||||||
@ -2229,9 +2231,9 @@ static int32_t scsi_disk_dma_command(SCSIRequest *req, uint8_t *buf)
|
|||||||
}
|
}
|
||||||
assert(r->iov.iov_len == 0);
|
assert(r->iov.iov_len == 0);
|
||||||
if (r->req.cmd.mode == SCSI_XFER_TO_DEV) {
|
if (r->req.cmd.mode == SCSI_XFER_TO_DEV) {
|
||||||
return -r->sector_count * 512;
|
return -r->sector_count * BDRV_SECTOR_SIZE;
|
||||||
} else {
|
} else {
|
||||||
return r->sector_count * 512;
|
return r->sector_count * BDRV_SECTOR_SIZE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2243,7 +2245,7 @@ static void scsi_disk_reset(DeviceState *dev)
|
|||||||
scsi_device_purge_requests(&s->qdev, SENSE_CODE(RESET));
|
scsi_device_purge_requests(&s->qdev, SENSE_CODE(RESET));
|
||||||
|
|
||||||
blk_get_geometry(s->qdev.conf.blk, &nb_sectors);
|
blk_get_geometry(s->qdev.conf.blk, &nb_sectors);
|
||||||
nb_sectors /= s->qdev.blocksize / 512;
|
nb_sectors /= s->qdev.blocksize / BDRV_SECTOR_SIZE;
|
||||||
if (nb_sectors) {
|
if (nb_sectors) {
|
||||||
nb_sectors--;
|
nb_sectors--;
|
||||||
}
|
}
|
||||||
|
@ -612,8 +612,8 @@ static char *usb_get_fw_dev_path(DeviceState *qdev)
|
|||||||
in++;
|
in++;
|
||||||
} else {
|
} else {
|
||||||
/* the device itself */
|
/* the device itself */
|
||||||
pos += snprintf(fw_path + pos, fw_len - pos, "%s@%lx",
|
snprintf(fw_path + pos, fw_len - pos, "%s@%lx",
|
||||||
qdev_fw_name(qdev), nr);
|
qdev_fw_name(qdev), nr);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -350,7 +350,6 @@ static void *event_thread(void *arg)
|
|||||||
case VEVENT_LAST: /* quit */
|
case VEVENT_LAST: /* quit */
|
||||||
vevent_delete(event);
|
vevent_delete(event);
|
||||||
return NULL;
|
return NULL;
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -236,7 +236,7 @@ static void vfio_intp_interrupt(VFIOINTp *intp)
|
|||||||
trace_vfio_intp_interrupt_set_pending(intp->pin);
|
trace_vfio_intp_interrupt_set_pending(intp->pin);
|
||||||
QSIMPLEQ_INSERT_TAIL(&vdev->pending_intp_queue,
|
QSIMPLEQ_INSERT_TAIL(&vdev->pending_intp_queue,
|
||||||
intp, pqnext);
|
intp, pqnext);
|
||||||
ret = event_notifier_test_and_clear(intp->interrupt);
|
event_notifier_test_and_clear(intp->interrupt);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -603,7 +603,7 @@ static void scrub_shadow_regions(struct vhost_dev *dev,
|
|||||||
*/
|
*/
|
||||||
for (i = 0; i < dev->mem->nregions; i++) {
|
for (i = 0; i < dev->mem->nregions; i++) {
|
||||||
reg = &dev->mem->regions[i];
|
reg = &dev->mem->regions[i];
|
||||||
mr = vhost_user_get_mr_data(reg->userspace_addr, &offset, &fd);
|
vhost_user_get_mr_data(reg->userspace_addr, &offset, &fd);
|
||||||
if (fd > 0) {
|
if (fd > 0) {
|
||||||
++fd_num;
|
++fd_num;
|
||||||
}
|
}
|
||||||
|
@ -102,7 +102,7 @@ I2CSlave *i2c_slave_new(const char *name, uint8_t addr);
|
|||||||
I2CSlave *i2c_slave_create_simple(I2CBus *bus, const char *name, uint8_t addr);
|
I2CSlave *i2c_slave_create_simple(I2CBus *bus, const char *name, uint8_t addr);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Realize and and drop a reference an I2C slave device
|
* Realize and drop a reference an I2C slave device
|
||||||
* @dev: I2C slave device to realize
|
* @dev: I2C slave device to realize
|
||||||
* @bus: I2C bus to put it on
|
* @bus: I2C bus to put it on
|
||||||
* @addr: I2C address of the slave on the bus
|
* @addr: I2C address of the slave on the bus
|
||||||
|
@ -181,6 +181,7 @@ uint64_t register_read_memory(void *opaque, hwaddr addr, unsigned size);
|
|||||||
* @data: Array to use for register data, must already be allocated
|
* @data: Array to use for register data, must already be allocated
|
||||||
* @ops: Memory region ops to access registers.
|
* @ops: Memory region ops to access registers.
|
||||||
* @debug enabled: turn on/off verbose debug information
|
* @debug enabled: turn on/off verbose debug information
|
||||||
|
* @memory_size: Size of the memory region
|
||||||
* returns: A structure containing all of the registers and an initialized
|
* returns: A structure containing all of the registers and an initialized
|
||||||
* memory region (r_array->mem) the caller should add to a container.
|
* memory region (r_array->mem) the caller should add to a container.
|
||||||
*/
|
*/
|
||||||
|
@ -52,7 +52,7 @@ int qemu_init_main_loop(Error **errp);
|
|||||||
* repeatedly calls main_loop_wait(false).
|
* repeatedly calls main_loop_wait(false).
|
||||||
*
|
*
|
||||||
* Main loop services include file descriptor callbacks, bottom halves
|
* Main loop services include file descriptor callbacks, bottom halves
|
||||||
* and timers (defined in qemu-timer.h). Bottom halves are similar to timers
|
* and timers (defined in qemu/timer.h). Bottom halves are similar to timers
|
||||||
* that execute immediately, but have a lower overhead and scheduling them
|
* that execute immediately, but have a lower overhead and scheduling them
|
||||||
* is wait-free, thread-safe and signal-safe.
|
* is wait-free, thread-safe and signal-safe.
|
||||||
*
|
*
|
||||||
|
@ -2056,6 +2056,18 @@ print_fcntl(void *cpu_env, const struct syscallname *name,
|
|||||||
print_pointer(arg2, 1);
|
print_pointer(arg2, 1);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
case TARGET_F_OFD_GETLK:
|
||||||
|
qemu_log("F_OFD_GETLK,");
|
||||||
|
print_pointer(arg2, 1);
|
||||||
|
break;
|
||||||
|
case TARGET_F_OFD_SETLK:
|
||||||
|
qemu_log("F_OFD_SETLK,");
|
||||||
|
print_pointer(arg2, 1);
|
||||||
|
break;
|
||||||
|
case TARGET_F_OFD_SETLKW:
|
||||||
|
qemu_log("F_OFD_SETLKW,");
|
||||||
|
print_pointer(arg2, 1);
|
||||||
|
break;
|
||||||
case TARGET_F_SETLEASE:
|
case TARGET_F_SETLEASE:
|
||||||
qemu_log("F_SETLEASE,");
|
qemu_log("F_SETLEASE,");
|
||||||
print_raw_param(TARGET_ABI_FMT_ld, arg2, 0);
|
print_raw_param(TARGET_ABI_FMT_ld, arg2, 0);
|
||||||
|
@ -2684,7 +2684,7 @@ SRST
|
|||||||
disable script execution.
|
disable script execution.
|
||||||
|
|
||||||
If running QEMU as an unprivileged user, use the network helper
|
If running QEMU as an unprivileged user, use the network helper
|
||||||
helper to configure the TAP interface and attach it to the bridge.
|
to configure the TAP interface and attach it to the bridge.
|
||||||
The default network helper executable is
|
The default network helper executable is
|
||||||
``/path/to/qemu-bridge-helper`` and the default bridge device is
|
``/path/to/qemu-bridge-helper`` and the default bridge device is
|
||||||
``br0``.
|
``br0``.
|
||||||
|
@ -32,17 +32,13 @@ uint32_t scsi_cdb_xfer(uint8_t *buf)
|
|||||||
switch (buf[0] >> 5) {
|
switch (buf[0] >> 5) {
|
||||||
case 0:
|
case 0:
|
||||||
return buf[4];
|
return buf[4];
|
||||||
break;
|
|
||||||
case 1:
|
case 1:
|
||||||
case 2:
|
case 2:
|
||||||
return lduw_be_p(&buf[7]);
|
return lduw_be_p(&buf[7]);
|
||||||
break;
|
|
||||||
case 4:
|
case 4:
|
||||||
return ldl_be_p(&buf[10]) & 0xffffffffULL;
|
return ldl_be_p(&buf[10]) & 0xffffffffULL;
|
||||||
break;
|
|
||||||
case 5:
|
case 5:
|
||||||
return ldl_be_p(&buf[6]) & 0xffffffffULL;
|
return ldl_be_p(&buf[6]) & 0xffffffffULL;
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "hw/i386/pc.h"
|
#include "hw/block/fdc.h"
|
||||||
|
|
||||||
int cmos_get_fd_drive_type(FloppyDriveType fd0)
|
int cmos_get_fd_drive_type(FloppyDriveType fd0)
|
||||||
{
|
{
|
||||||
|
@ -330,7 +330,6 @@ int kvm_arch_remove_hw_breakpoint(target_ulong addr,
|
|||||||
switch (type) {
|
switch (type) {
|
||||||
case GDB_BREAKPOINT_HW:
|
case GDB_BREAKPOINT_HW:
|
||||||
return delete_hw_breakpoint(addr);
|
return delete_hw_breakpoint(addr);
|
||||||
break;
|
|
||||||
case GDB_WATCHPOINT_READ:
|
case GDB_WATCHPOINT_READ:
|
||||||
case GDB_WATCHPOINT_WRITE:
|
case GDB_WATCHPOINT_WRITE:
|
||||||
case GDB_WATCHPOINT_ACCESS:
|
case GDB_WATCHPOINT_ACCESS:
|
||||||
|
@ -8631,8 +8631,8 @@ static void handle_scalar_simd_shli(DisasContext *s, bool insert,
|
|||||||
int size = 32 - clz32(immh) - 1;
|
int size = 32 - clz32(immh) - 1;
|
||||||
int immhb = immh << 3 | immb;
|
int immhb = immh << 3 | immb;
|
||||||
int shift = immhb - (8 << size);
|
int shift = immhb - (8 << size);
|
||||||
TCGv_i64 tcg_rn = new_tmp_a64(s);
|
TCGv_i64 tcg_rn;
|
||||||
TCGv_i64 tcg_rd = new_tmp_a64(s);
|
TCGv_i64 tcg_rd;
|
||||||
|
|
||||||
if (!extract32(immh, 3, 1)) {
|
if (!extract32(immh, 3, 1)) {
|
||||||
unallocated_encoding(s);
|
unallocated_encoding(s);
|
||||||
@ -13014,9 +13014,6 @@ static void disas_simd_two_reg_misc_fp16(DisasContext *s, uint32_t insn)
|
|||||||
fpop = deposit32(opcode, 5, 1, a);
|
fpop = deposit32(opcode, 5, 1, a);
|
||||||
fpop = deposit32(fpop, 6, 1, u);
|
fpop = deposit32(fpop, 6, 1, u);
|
||||||
|
|
||||||
rd = extract32(insn, 0, 5);
|
|
||||||
rn = extract32(insn, 5, 5);
|
|
||||||
|
|
||||||
switch (fpop) {
|
switch (fpop) {
|
||||||
case 0x1d: /* SCVTF */
|
case 0x1d: /* SCVTF */
|
||||||
case 0x5d: /* UCVTF */
|
case 0x5d: /* UCVTF */
|
||||||
|
@ -1178,12 +1178,11 @@ static inline void t_gen_zext(TCGv d, TCGv s, int size)
|
|||||||
static char memsize_char(int size)
|
static char memsize_char(int size)
|
||||||
{
|
{
|
||||||
switch (size) {
|
switch (size) {
|
||||||
case 1: return 'b'; break;
|
case 1: return 'b';
|
||||||
case 2: return 'w'; break;
|
case 2: return 'w';
|
||||||
case 4: return 'd'; break;
|
case 4: return 'd';
|
||||||
default:
|
default:
|
||||||
return 'x';
|
return 'x';
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -1026,10 +1026,8 @@ static unsigned int dec10_ind(CPUCRISState *env, DisasContext *dc)
|
|||||||
switch (dc->opcode) {
|
switch (dc->opcode) {
|
||||||
case CRISV10_IND_MOVE_M_R:
|
case CRISV10_IND_MOVE_M_R:
|
||||||
return dec10_ind_move_m_r(env, dc, size);
|
return dec10_ind_move_m_r(env, dc, size);
|
||||||
break;
|
|
||||||
case CRISV10_IND_MOVE_R_M:
|
case CRISV10_IND_MOVE_R_M:
|
||||||
return dec10_ind_move_r_m(dc, size);
|
return dec10_ind_move_r_m(dc, size);
|
||||||
break;
|
|
||||||
case CRISV10_IND_CMP:
|
case CRISV10_IND_CMP:
|
||||||
LOG_DIS("cmp size=%d op=%d %d\n", size, dc->src, dc->dst);
|
LOG_DIS("cmp size=%d op=%d %d\n", size, dc->src, dc->dst);
|
||||||
cris_cc_mask(dc, CC_MASK_NZVC);
|
cris_cc_mask(dc, CC_MASK_NZVC);
|
||||||
|
@ -234,25 +234,20 @@ target_ulong helper_clcs(CPUPPCState *env, uint32_t arg)
|
|||||||
case 0x0CUL:
|
case 0x0CUL:
|
||||||
/* Instruction cache line size */
|
/* Instruction cache line size */
|
||||||
return env->icache_line_size;
|
return env->icache_line_size;
|
||||||
break;
|
|
||||||
case 0x0DUL:
|
case 0x0DUL:
|
||||||
/* Data cache line size */
|
/* Data cache line size */
|
||||||
return env->dcache_line_size;
|
return env->dcache_line_size;
|
||||||
break;
|
|
||||||
case 0x0EUL:
|
case 0x0EUL:
|
||||||
/* Minimum cache line size */
|
/* Minimum cache line size */
|
||||||
return (env->icache_line_size < env->dcache_line_size) ?
|
return (env->icache_line_size < env->dcache_line_size) ?
|
||||||
env->icache_line_size : env->dcache_line_size;
|
env->icache_line_size : env->dcache_line_size;
|
||||||
break;
|
|
||||||
case 0x0FUL:
|
case 0x0FUL:
|
||||||
/* Maximum cache line size */
|
/* Maximum cache line size */
|
||||||
return (env->icache_line_size > env->dcache_line_size) ?
|
return (env->icache_line_size > env->dcache_line_size) ?
|
||||||
env->icache_line_size : env->dcache_line_size;
|
env->icache_line_size : env->dcache_line_size;
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
/* Undefined */
|
/* Undefined */
|
||||||
return 0;
|
return 0;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1542,7 +1542,6 @@ static void _decode_opc(DisasContext * ctx)
|
|||||||
tcg_gen_qemu_ld_i32(REG(0), REG(B11_8), ctx->memidx,
|
tcg_gen_qemu_ld_i32(REG(0), REG(B11_8), ctx->memidx,
|
||||||
MO_TEUL | MO_UNALN);
|
MO_TEUL | MO_UNALN);
|
||||||
return;
|
return;
|
||||||
break;
|
|
||||||
case 0x40e9: /* movua.l @Rm+,R0 */
|
case 0x40e9: /* movua.l @Rm+,R0 */
|
||||||
CHECK_SH4A
|
CHECK_SH4A
|
||||||
/* Load non-boundary-aligned data */
|
/* Load non-boundary-aligned data */
|
||||||
@ -1550,7 +1549,6 @@ static void _decode_opc(DisasContext * ctx)
|
|||||||
MO_TEUL | MO_UNALN);
|
MO_TEUL | MO_UNALN);
|
||||||
tcg_gen_addi_i32(REG(B11_8), REG(B11_8), 4);
|
tcg_gen_addi_i32(REG(B11_8), REG(B11_8), 4);
|
||||||
return;
|
return;
|
||||||
break;
|
|
||||||
case 0x0029: /* movt Rn */
|
case 0x0029: /* movt Rn */
|
||||||
tcg_gen_mov_i32(REG(B11_8), cpu_sr_t);
|
tcg_gen_mov_i32(REG(B11_8), cpu_sr_t);
|
||||||
return;
|
return;
|
||||||
@ -1638,7 +1636,6 @@ static void _decode_opc(DisasContext * ctx)
|
|||||||
CHECK_SH4A
|
CHECK_SH4A
|
||||||
tcg_gen_mb(TCG_MO_ALL | TCG_BAR_SC);
|
tcg_gen_mb(TCG_MO_ALL | TCG_BAR_SC);
|
||||||
return;
|
return;
|
||||||
break;
|
|
||||||
case 0x4024: /* rotcl Rn */
|
case 0x4024: /* rotcl Rn */
|
||||||
{
|
{
|
||||||
TCGv tmp = tcg_temp_new();
|
TCGv tmp = tcg_temp_new();
|
||||||
|
@ -1125,7 +1125,6 @@ static int send_palette_rect(VncState *vs, int x, int y,
|
|||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
return -1; /* No palette for 8bits colors */
|
return -1; /* No palette for 8bits colors */
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
bytes = w * h;
|
bytes = w * h;
|
||||||
vs->tight->tight.offset = bytes;
|
vs->tight->tight.offset = bytes;
|
||||||
|
@ -530,7 +530,7 @@ bool timerlist_run_timers(QEMUTimerList *timer_list)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Extract expired timers from active timers list and and process them.
|
* Extract expired timers from active timers list and process them.
|
||||||
*
|
*
|
||||||
* In rr mode we need "filtered" checkpointing for virtual clock. The
|
* In rr mode we need "filtered" checkpointing for virtual clock. The
|
||||||
* checkpoint must be recorded/replayed before processing any non-EXTERNAL timer,
|
* checkpoint must be recorded/replayed before processing any non-EXTERNAL timer,
|
||||||
|
@ -79,7 +79,7 @@ qemu_vfio_dma_reset_temporary(void *s) "s %p"
|
|||||||
qemu_vfio_ram_block_added(void *s, void *p, size_t size) "s %p host %p size 0x%zx"
|
qemu_vfio_ram_block_added(void *s, void *p, size_t size) "s %p host %p size 0x%zx"
|
||||||
qemu_vfio_ram_block_removed(void *s, void *p, size_t size) "s %p host %p size 0x%zx"
|
qemu_vfio_ram_block_removed(void *s, void *p, size_t size) "s %p host %p size 0x%zx"
|
||||||
qemu_vfio_find_mapping(void *s, void *p) "s %p host %p"
|
qemu_vfio_find_mapping(void *s, void *p) "s %p host %p"
|
||||||
qemu_vfio_new_mapping(void *s, void *host, size_t size, int index, uint64_t iova) "s %p host %p size %zu index %d iova 0x%"PRIx64
|
qemu_vfio_new_mapping(void *s, void *host, size_t size, int index, uint64_t iova) "s %p host %p size 0x%zx index %d iova 0x%"PRIx64
|
||||||
qemu_vfio_do_mapping(void *s, void *host, size_t size, uint64_t iova) "s %p host %p size %zu iova 0x%"PRIx64
|
qemu_vfio_do_mapping(void *s, void *host, size_t size, uint64_t iova) "s %p host %p size 0x%zx iova 0x%"PRIx64
|
||||||
qemu_vfio_dma_map(void *s, void *host, size_t size, bool temporary, uint64_t *iova) "s %p host %p size %zu temporary %d iova %p"
|
qemu_vfio_dma_map(void *s, void *host, size_t size, bool temporary, uint64_t *iova) "s %p host %p size 0x%zx temporary %d iova %p"
|
||||||
qemu_vfio_dma_unmap(void *s, void *host) "s %p host %p"
|
qemu_vfio_dma_unmap(void *s, void *host) "s %p host %p"
|
||||||
|
@ -173,7 +173,7 @@ void qemu_vfio_pci_unmap_bar(QEMUVFIOState *s, int index, void *bar,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize device IRQ with @irq_type and and register an event notifier.
|
* Initialize device IRQ with @irq_type and register an event notifier.
|
||||||
*/
|
*/
|
||||||
int qemu_vfio_pci_init_irq(QEMUVFIOState *s, EventNotifier *e,
|
int qemu_vfio_pci_init_irq(QEMUVFIOState *s, EventNotifier *e,
|
||||||
int irq_type, Error **errp)
|
int irq_type, Error **errp)
|
||||||
@ -505,7 +505,7 @@ static IOVAMapping *qemu_vfio_find_mapping(QEMUVFIOState *s, void *host,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allocate IOVA and and create a new mapping record and insert it in @s.
|
* Allocate IOVA and create a new mapping record and insert it in @s.
|
||||||
*/
|
*/
|
||||||
static IOVAMapping *qemu_vfio_add_mapping(QEMUVFIOState *s,
|
static IOVAMapping *qemu_vfio_add_mapping(QEMUVFIOState *s,
|
||||||
void *host, size_t size,
|
void *host, size_t size,
|
||||||
|
Loading…
Reference in New Issue
Block a user