Here are a bunch of 1.7-tagged patches that I was afraid

were getting forgotten or that did not have a clear maintainer responsible
 for making a pull request.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQIcBAABAgAGBQJSjjebAAoJEBvWZb6bTYbySaYP/RgDcAK/+VTEwM9kLa3OlWA+
 kp0RNu+8fV9I5ocWDOlh19svZ/KS81D2o3TA4Fv3PBe3d4Mcjqcw1qxk+2Vh+Plt
 omN5ysM0jnTxsAgvszS/WaHGzS1Xpge9zazpynCoDYYPTC3JVoD96zYTut62frnk
 4i3t5wZwW64Al7f8l4UkWMnneEJW66pHDDI7QgHXhb3YkGX6RYGqTA6hFp+AKV75
 IppGVpO46LbzQnGENa7myhnoQrOu1jDlHjhogIuLRwCLZqdqMI+JiPuMACrFb+34
 QfcF8lHj9T+RmZj9X1Boq7ZfdveNBmXasDaV+L97uUVBcHHr8t6hniHVXDa07QFL
 pGhLz58W/S0PD8UJ5MfKLHqMROiZ7OUCF6uu77sKG4Xnli842lnxJHqy0NYiJ7OL
 JA/bYOMb2p+xFLmDJylRdkyDowAk/WZiMRI6QG8oE+nm3Bl4ERH4zlYhAz7nH2KA
 K3wsZzV4hZ7IUYrq2H2zDXUCMLUJgA1T+pLSusLeQxGuTcfRLxacFzZSjzlFhlBr
 5/qJvzce5AMz/jTbv0ygq2jacKP8aq/dOgUOjaenzinC/G7aaW2m7dEyt+eMYUjj
 EiqM1rX2w0ATS1iR2nQdxMNvFBBqLe8VPEuajg3wal+f7Js0ZegsBjrTKUULsPwq
 kIuZaZviKLGYnK1zrnYR
 =c4Hz
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'bonzini/tags/for-anthony' into staging

Here are a bunch of 1.7-tagged patches that I was afraid
were getting forgotten or that did not have a clear maintainer responsible
for making a pull request.

# gpg: Signature made Thu 21 Nov 2013 08:40:59 AM PST using RSA key ID 9B4D86F2
# gpg: Can't check signature: public key not found

# By Peter Maydell (3) and others
# Via Paolo Bonzini
* bonzini/tags/for-anthony:
  qga: Fix compiler warnings (missing format attribute, wrong format strings)
  mips jazz: do not raise data bus exception when accessing invalid addresses
  target-i386: yield to another VCPU on PAUSE
  rng-egd: offset the point when repeatedly read from the buffer
  rng-egd: remove redundant free
  target-i386: Fix build by providing stub kvm_arch_get_supported_cpuid()
  vfio-pci: Fix multifunction=on
  atomic.h: Fix build with clang
  pc: get rid of builtin pvpanic for "-M pc-1.5"
  configure: Explicitly set ARFLAGS so we can build with GNU Make 4.0
  sun4m: Add FCode ROM for TCX framebuffer

Message-id: 1385052578-32352-1-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@amazon.com>
This commit is contained in:
Anthony Liguori 2013-11-25 09:41:24 -08:00
commit d916adaa60
13 changed files with 60 additions and 36 deletions

View File

@ -293,7 +293,7 @@ ifdef INSTALL_BLOBS
BLOBS=bios.bin sgabios.bin vgabios.bin vgabios-cirrus.bin \ BLOBS=bios.bin sgabios.bin vgabios.bin vgabios-cirrus.bin \
vgabios-stdvga.bin vgabios-vmware.bin vgabios-qxl.bin \ vgabios-stdvga.bin vgabios-vmware.bin vgabios-qxl.bin \
acpi-dsdt.aml q35-acpi-dsdt.aml \ acpi-dsdt.aml q35-acpi-dsdt.aml \
ppc_rom.bin openbios-sparc32 openbios-sparc64 openbios-ppc \ ppc_rom.bin openbios-sparc32 openbios-sparc64 openbios-ppc QEMU,tcx.bin \
pxe-e1000.rom pxe-eepro100.rom pxe-ne2k_pci.rom \ pxe-e1000.rom pxe-eepro100.rom pxe-ne2k_pci.rom \
pxe-pcnet.rom pxe-rtl8139.rom pxe-virtio.rom \ pxe-pcnet.rom pxe-rtl8139.rom pxe-virtio.rom \
efi-e1000.rom efi-eepro100.rom efi-ne2k_pci.rom \ efi-e1000.rom efi-eepro100.rom efi-ne2k_pci.rom \

5
configure vendored
View File

@ -325,6 +325,9 @@ query_pkg_config() {
pkg_config=query_pkg_config pkg_config=query_pkg_config
sdl_config="${SDL_CONFIG-${cross_prefix}sdl-config}" sdl_config="${SDL_CONFIG-${cross_prefix}sdl-config}"
# If the user hasn't specified ARFLAGS, default to 'rv', just as make does.
ARFLAGS="${ARFLAGS-rv}"
# default flags for all hosts # default flags for all hosts
QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS" QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
QEMU_CFLAGS="-Wall -Wundef -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS" QEMU_CFLAGS="-Wall -Wundef -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS"
@ -3695,6 +3698,7 @@ echo "C compiler $cc"
echo "Host C compiler $host_cc" echo "Host C compiler $host_cc"
echo "C++ compiler $cxx" echo "C++ compiler $cxx"
echo "Objective-C compiler $objcc" echo "Objective-C compiler $objcc"
echo "ARFLAGS $ARFLAGS"
echo "CFLAGS $CFLAGS" echo "CFLAGS $CFLAGS"
echo "QEMU_CFLAGS $QEMU_CFLAGS" echo "QEMU_CFLAGS $QEMU_CFLAGS"
echo "LDFLAGS $LDFLAGS" echo "LDFLAGS $LDFLAGS"
@ -4276,6 +4280,7 @@ echo "HOST_CC=$host_cc" >> $config_host_mak
echo "CXX=$cxx" >> $config_host_mak echo "CXX=$cxx" >> $config_host_mak
echo "OBJCC=$objcc" >> $config_host_mak echo "OBJCC=$objcc" >> $config_host_mak
echo "AR=$ar" >> $config_host_mak echo "AR=$ar" >> $config_host_mak
echo "ARFLAGS=$ARFLAGS" >> $config_host_mak
echo "AS=$as" >> $config_host_mak echo "AS=$as" >> $config_host_mak
echo "CPP=$cpp" >> $config_host_mak echo "CPP=$cpp" >> $config_host_mak
echo "OBJCOPY=$objcopy" >> $config_host_mak echo "OBJCOPY=$objcopy" >> $config_host_mak

View File

@ -25,8 +25,12 @@
#include "qemu-common.h" #include "qemu-common.h"
#include "ui/console.h" #include "ui/console.h"
#include "ui/pixel_ops.h" #include "ui/pixel_ops.h"
#include "hw/loader.h"
#include "hw/sysbus.h" #include "hw/sysbus.h"
#define TCX_ROM_FILE "QEMU,tcx.bin"
#define FCODE_MAX_ROM_SIZE 0x10000
#define MAXX 1024 #define MAXX 1024
#define MAXY 768 #define MAXY 768
#define TCX_DAC_NREGS 16 #define TCX_DAC_NREGS 16
@ -43,6 +47,8 @@ typedef struct TCXState {
QemuConsole *con; QemuConsole *con;
uint8_t *vram; uint8_t *vram;
uint32_t *vram24, *cplane; uint32_t *vram24, *cplane;
hwaddr prom_addr;
MemoryRegion rom;
MemoryRegion vram_mem; MemoryRegion vram_mem;
MemoryRegion vram_8bit; MemoryRegion vram_8bit;
MemoryRegion vram_24bit; MemoryRegion vram_24bit;
@ -529,14 +535,31 @@ static int tcx_init1(SysBusDevice *dev)
{ {
TCXState *s = TCX(dev); TCXState *s = TCX(dev);
ram_addr_t vram_offset = 0; ram_addr_t vram_offset = 0;
int size; int size, ret;
uint8_t *vram_base; uint8_t *vram_base;
char *fcode_filename;
memory_region_init_ram(&s->vram_mem, OBJECT(s), "tcx.vram", memory_region_init_ram(&s->vram_mem, OBJECT(s), "tcx.vram",
s->vram_size * (1 + 4 + 4)); s->vram_size * (1 + 4 + 4));
vmstate_register_ram_global(&s->vram_mem); vmstate_register_ram_global(&s->vram_mem);
vram_base = memory_region_get_ram_ptr(&s->vram_mem); vram_base = memory_region_get_ram_ptr(&s->vram_mem);
/* FCode ROM */
memory_region_init_ram(&s->rom, NULL, "tcx.prom", FCODE_MAX_ROM_SIZE);
vmstate_register_ram_global(&s->rom);
memory_region_set_readonly(&s->rom, true);
sysbus_init_mmio(dev, &s->rom);
fcode_filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, TCX_ROM_FILE);
if (fcode_filename) {
ret = load_image_targphys(fcode_filename, s->prom_addr,
FCODE_MAX_ROM_SIZE);
if (ret < 0 || ret > FCODE_MAX_ROM_SIZE) {
fprintf(stderr, "tcx: could not load prom '%s'\n", TCX_ROM_FILE);
return -1;
}
}
/* 8-bit plane */ /* 8-bit plane */
s->vram = vram_base; s->vram = vram_base;
size = s->vram_size; size = s->vram_size;
@ -598,6 +621,7 @@ static Property tcx_properties[] = {
DEFINE_PROP_UINT16("width", TCXState, width, -1), DEFINE_PROP_UINT16("width", TCXState, width, -1),
DEFINE_PROP_UINT16("height", TCXState, height, -1), DEFINE_PROP_UINT16("height", TCXState, height, -1),
DEFINE_PROP_UINT16("depth", TCXState, depth, -1), DEFINE_PROP_UINT16("depth", TCXState, depth, -1),
DEFINE_PROP_HEX64("prom_addr", TCXState, prom_addr, -1),
DEFINE_PROP_END_OF_LIST(), DEFINE_PROP_END_OF_LIST(),
}; };

View File

@ -57,7 +57,6 @@ static const int ide_iobase[MAX_IDE_BUS] = { 0x1f0, 0x170 };
static const int ide_iobase2[MAX_IDE_BUS] = { 0x3f6, 0x376 }; static const int ide_iobase2[MAX_IDE_BUS] = { 0x3f6, 0x376 };
static const int ide_irq[MAX_IDE_BUS] = { 14, 15 }; static const int ide_irq[MAX_IDE_BUS] = { 14, 15 };
static bool has_pvpanic;
static bool has_pci_info; static bool has_pci_info;
static bool has_acpi_build = true; static bool has_acpi_build = true;
@ -229,10 +228,6 @@ static void pc_init1(QEMUMachineInitArgs *args,
if (pci_enabled) { if (pci_enabled) {
pc_pci_device_init(pci_bus); pc_pci_device_init(pci_bus);
} }
if (has_pvpanic) {
pvpanic_init(isa_bus);
}
} }
static void pc_init_pci(QEMUMachineInitArgs *args) static void pc_init_pci(QEMUMachineInitArgs *args)
@ -250,13 +245,11 @@ static void pc_compat_1_6(QEMUMachineInitArgs *args)
static void pc_compat_1_5(QEMUMachineInitArgs *args) static void pc_compat_1_5(QEMUMachineInitArgs *args)
{ {
pc_compat_1_6(args); pc_compat_1_6(args);
has_pvpanic = true;
} }
static void pc_compat_1_4(QEMUMachineInitArgs *args) static void pc_compat_1_4(QEMUMachineInitArgs *args)
{ {
pc_compat_1_5(args); pc_compat_1_5(args);
has_pvpanic = false;
x86_cpu_compat_set_features("n270", FEAT_1_ECX, 0, CPUID_EXT_MOVBE); x86_cpu_compat_set_features("n270", FEAT_1_ECX, 0, CPUID_EXT_MOVBE);
x86_cpu_compat_set_features("Westmere", FEAT_1_ECX, 0, CPUID_EXT_PCLMULQDQ); x86_cpu_compat_set_features("Westmere", FEAT_1_ECX, 0, CPUID_EXT_PCLMULQDQ);
} }

View File

@ -47,7 +47,6 @@
/* ICH9 AHCI has 6 ports */ /* ICH9 AHCI has 6 ports */
#define MAX_SATA_PORTS 6 #define MAX_SATA_PORTS 6
static bool has_pvpanic;
static bool has_pci_info; static bool has_pci_info;
static bool has_acpi_build = true; static bool has_acpi_build = true;
@ -216,10 +215,6 @@ static void pc_q35_init(QEMUMachineInitArgs *args)
if (pci_enabled) { if (pci_enabled) {
pc_pci_device_init(host_bus); pc_pci_device_init(host_bus);
} }
if (has_pvpanic) {
pvpanic_init(isa_bus);
}
} }
static void pc_compat_1_6(QEMUMachineInitArgs *args) static void pc_compat_1_6(QEMUMachineInitArgs *args)
@ -232,13 +227,11 @@ static void pc_compat_1_6(QEMUMachineInitArgs *args)
static void pc_compat_1_5(QEMUMachineInitArgs *args) static void pc_compat_1_5(QEMUMachineInitArgs *args)
{ {
pc_compat_1_6(args); pc_compat_1_6(args);
has_pvpanic = true;
} }
static void pc_compat_1_4(QEMUMachineInitArgs *args) static void pc_compat_1_4(QEMUMachineInitArgs *args)
{ {
pc_compat_1_5(args); pc_compat_1_5(args);
has_pvpanic = false;
x86_cpu_compat_set_features("n270", FEAT_1_ECX, 0, CPUID_EXT_MOVBE); x86_cpu_compat_set_features("n270", FEAT_1_ECX, 0, CPUID_EXT_MOVBE);
x86_cpu_compat_set_features("Westmere", FEAT_1_ECX, 0, CPUID_EXT_PCLMULQDQ); x86_cpu_compat_set_features("Westmere", FEAT_1_ECX, 0, CPUID_EXT_PCLMULQDQ);
} }

View File

@ -112,11 +112,6 @@ static void pvpanic_isa_realizefn(DeviceState *dev, Error **errp)
isa_register_ioport(d, &s->io, s->ioport); isa_register_ioport(d, &s->io, s->ioport);
} }
void pvpanic_init(ISABus *bus)
{
isa_create_simple(bus, TYPE_ISA_PVPANIC_DEVICE);
}
#define PVPANIC_IOPORT_PROP "ioport" #define PVPANIC_IOPORT_PROP "ioport"
uint16_t pvpanic_port(void) uint16_t pvpanic_port(void)

View File

@ -537,24 +537,27 @@ static void tcx_init(hwaddr addr, int vram_size, int width,
qdev_prop_set_uint16(dev, "width", width); qdev_prop_set_uint16(dev, "width", width);
qdev_prop_set_uint16(dev, "height", height); qdev_prop_set_uint16(dev, "height", height);
qdev_prop_set_uint16(dev, "depth", depth); qdev_prop_set_uint16(dev, "depth", depth);
qdev_prop_set_uint64(dev, "prom_addr", addr);
qdev_init_nofail(dev); qdev_init_nofail(dev);
s = SYS_BUS_DEVICE(dev); s = SYS_BUS_DEVICE(dev);
/* FCode ROM */
sysbus_mmio_map(s, 0, addr);
/* 8-bit plane */ /* 8-bit plane */
sysbus_mmio_map(s, 0, addr + 0x00800000ULL); sysbus_mmio_map(s, 1, addr + 0x00800000ULL);
/* DAC */ /* DAC */
sysbus_mmio_map(s, 1, addr + 0x00200000ULL); sysbus_mmio_map(s, 2, addr + 0x00200000ULL);
/* TEC (dummy) */ /* TEC (dummy) */
sysbus_mmio_map(s, 2, addr + 0x00700000ULL); sysbus_mmio_map(s, 3, addr + 0x00700000ULL);
/* THC 24 bit: NetBSD writes here even with 8-bit display: dummy */ /* THC 24 bit: NetBSD writes here even with 8-bit display: dummy */
sysbus_mmio_map(s, 3, addr + 0x00301000ULL); sysbus_mmio_map(s, 4, addr + 0x00301000ULL);
if (depth == 24) { if (depth == 24) {
/* 24-bit plane */ /* 24-bit plane */
sysbus_mmio_map(s, 4, addr + 0x02000000ULL); sysbus_mmio_map(s, 5, addr + 0x02000000ULL);
/* Control plane */ /* Control plane */
sysbus_mmio_map(s, 5, addr + 0x0a000000ULL); sysbus_mmio_map(s, 6, addr + 0x0a000000ULL);
} else { } else {
/* THC 8 bit (dummy) */ /* THC 8 bit (dummy) */
sysbus_mmio_map(s, 4, addr + 0x00300000ULL); sysbus_mmio_map(s, 5, addr + 0x00300000ULL);
} }
} }

View File

@ -235,7 +235,6 @@ void pc_system_firmware_init(MemoryRegion *rom_memory,
bool isapc_ram_fw); bool isapc_ram_fw);
/* pvpanic.c */ /* pvpanic.c */
void pvpanic_init(ISABus *bus);
uint16_t pvpanic_port(void); uint16_t pvpanic_port(void);
/* e820 types */ /* e820 types */

BIN
pc-bios/QEMU,tcx.bin Normal file

Binary file not shown.

View File

@ -11,8 +11,8 @@
firmware implementation. The goal is to implement a 100% IEEE firmware implementation. The goal is to implement a 100% IEEE
1275-1994 (referred to as Open Firmware) compliant firmware. 1275-1994 (referred to as Open Firmware) compliant firmware.
The included images for PowerPC (for 32 and 64 bit PPC CPUs), The included images for PowerPC (for 32 and 64 bit PPC CPUs),
Sparc32 and Sparc64 are built from OpenBIOS SVN revision Sparc32 (including QEMU,tcx.bin) and Sparc64 are built from OpenBIOS SVN
1229. revision 1229.
- SLOF (Slimline Open Firmware) is a free IEEE 1275 Open Firmware - SLOF (Slimline Open Firmware) is a free IEEE 1275 Open Firmware
implementation for certain IBM POWER hardware. The sources are at implementation for certain IBM POWER hardware. The sources are at

View File

@ -401,7 +401,7 @@ int64_t qmp_guest_file_open(const char *path, bool has_mode, const char *mode, E
return -1; return -1;
} }
slog("guest-file-open, handle: %d", handle); slog("guest-file-open, handle: %" PRId64, handle);
return handle; return handle;
} }
@ -410,7 +410,7 @@ void qmp_guest_file_close(int64_t handle, Error **err)
GuestFileHandle *gfh = guest_file_handle_find(handle, err); GuestFileHandle *gfh = guest_file_handle_find(handle, err);
int ret; int ret;
slog("guest-file-close called, handle: %ld", handle); slog("guest-file-close called, handle: %" PRId64, handle);
if (!gfh) { if (!gfh) {
return; return;
} }
@ -451,7 +451,7 @@ struct GuestFileRead *qmp_guest_file_read(int64_t handle, bool has_count,
read_count = fread(buf, 1, count, fh); read_count = fread(buf, 1, count, fh);
if (ferror(fh)) { if (ferror(fh)) {
error_setg_errno(err, errno, "failed to read file"); error_setg_errno(err, errno, "failed to read file");
slog("guest-file-read failed, handle: %ld", handle); slog("guest-file-read failed, handle: %" PRId64, handle);
} else { } else {
buf[read_count] = 0; buf[read_count] = 0;
read_data = g_malloc0(sizeof(GuestFileRead)); read_data = g_malloc0(sizeof(GuestFileRead));
@ -496,7 +496,7 @@ GuestFileWrite *qmp_guest_file_write(int64_t handle, const char *buf_b64,
write_count = fwrite(buf, 1, count, fh); write_count = fwrite(buf, 1, count, fh);
if (ferror(fh)) { if (ferror(fh)) {
error_setg_errno(err, errno, "failed to write to file"); error_setg_errno(err, errno, "failed to write to file");
slog("guest-file-write failed, handle: %ld", handle); slog("guest-file-write failed, handle: %" PRId64, handle);
} else { } else {
write_data = g_malloc0(sizeof(GuestFileWrite)); write_data = g_malloc0(sizeof(GuestFileWrite));
write_data->count = write_count; write_data->count = write_count;

View File

@ -29,7 +29,7 @@ GACommandState *ga_command_state_new(void);
bool ga_logging_enabled(GAState *s); bool ga_logging_enabled(GAState *s);
void ga_disable_logging(GAState *s); void ga_disable_logging(GAState *s);
void ga_enable_logging(GAState *s); void ga_enable_logging(GAState *s);
void slog(const gchar *fmt, ...); void GCC_FMT_ATTR(1, 2) slog(const gchar *fmt, ...);
void ga_set_response_delimited(GAState *s); void ga_set_response_delimited(GAState *s);
bool ga_is_frozen(GAState *s); bool ga_is_frozen(GAState *s);
void ga_set_frozen(GAState *s); void ga_set_frozen(GAState *s);

View File

@ -16,3 +16,15 @@ bool kvm_allows_irq0_override(void)
{ {
return 1; return 1;
} }
#ifndef __OPTIMIZE__
/* This function is only called inside conditionals which we
* rely on the compiler to optimize out when CONFIG_KVM is not
* defined.
*/
uint32_t kvm_arch_get_supported_cpuid(KVMState *env, uint32_t function,
uint32_t index, int reg)
{
abort();
}
#endif