diff options
author | tsutsui <tsutsui> | 2010-05-17 14:31:07 +0000 |
---|---|---|
committer | tsutsui <tsutsui> | 2010-05-17 14:31:07 +0000 |
commit | 44f4325b7453b4b7443470f570a33a4f67013e87 (patch) | |
tree | 29ff7f437e3ff03f4326ada559ef7a506ce89070 /emulators | |
parent | fa13ef9737ce8c15463ffe934c59664f4e42bb6a (diff) | |
download | pkgsrc-44f4325b7453b4b7443470f570a33a4f67013e87.tar.gz |
Update qemu to 0.12.4. Okay'ed by wiz@, in PR pkg/43311 filed by me.
---
version 0.12.4:
- Workaround for broken OSS_GETVERSION on FreeBSD, part two (Juergen Lock)
- oss: fix fragment setting (malc)
- oss: issue OSS_GETVERSION ioctl only when needed (malc)
- oss: refactor code around policy setting (malc)
- oss: workaround for cases when OSS_GETVERSION is not defined (malc)
- block: Free iovec arrays allocated by multiwrite_merge() (Stefan Hajnoczi)
- lsi: fix segfault in lsi_command_complete (Gerd Hoffmann)
- lsi: pass lsi_request to lsi_reselect (Gerd Hoffmann)
- lsi: move dma_len+dma_buf into lsi_request (Gerd Hoffmann)
- lsi: move current_dev into lsi_request (Gerd Hoffmann)
- lsi: have lsi_request for the whole life time of the request. (Gerd Hoffmann)
- lsi: use QTAILQ for lsi_queue (Gerd Hoffmann)
- tcp/mips: Change TCG_AREG0 (fp -> s0) (Stefan Weil)
- sh_pci: fix memory and I/O access (Aurelien Jarno)
- Fix incoming migration with iothread (Marcelo Tosatti)
- Fix SIGFPE for vnc display of width/height = 1 (Chris Webb)
- net: remove broken net_set_boot_mask() boot device validation (Eduardo Habkost)
- qcow2: Remove request from in-flight list after error (Kevin Wolf)
- qcow2: Don't ignore immediate read/write failures (Kevin Wolf)
- block: Fix multiwrite memory leak in error case (Kevin Wolf)
- block: Fix error code in multiwrite for immediate failures (Kevin Wolf)
- block: Fix multiwrite error handling (Kevin Wolf)
- scsi-disk: fix buffer overflow (Gerd Hoffmann)
- qcow2: Rewrite alloc_refcount_block/grow_refcount_table (Kevin Wolf)
- qcow2: Factor next_refcount_table_size out (Kevin Wolf)
- block: avoid creating too large iovecs in multiwrite_merge (Christoph Hellwig)
- json-parser: Fix segfault on malformed input (Kevin Wolf)
- linux-user: switch default ppc64 CPU to 970fx from 970 (Aurelien Jarno)
- target-sh4: MMU: fix store queue addresses (Aurelien Jarno)
- target-sh4: MMU: fix ITLB priviledge check (Aurelien Jarno)
- target-sh4: MMU: fix mem_idx computation (Aurelien Jarno)
- sh7750: handle MMUCR TI bit (Aurelien Jarno)
- UHCI spurious interrut fix (Paul Brook)
- tcg/mips: fix branch offset during retranslation (Aurelien Jarno)
- tcg/arm: correctly save/restore registers in prologue/epilogue (Aurelien Jarno)
- workaround for cmd646 bmdma register access while no dma is active (Igor V. Kovalenko)
- Fix corner case in chardev udp: parameter (Jan Kiszka)
- Don't set default monitor when there is a mux'ed one (Jan Kiszka)
- spelling typo (compatibilty) in hw/fw_cfg.c (Vagrant Cascadian)
- fdc: fix drive property handling. (Gerd Hoffmann)
- target-i386: fix commit c22549204a6edc431e8e4358e61bd56386ff6957 (TeLeMan)
- target-i386: fix SIB decoding with index = 4 (Aurelien Jarno)
- Fix segfault with ram_size > 4095M without kvm (Ryan Harper)
- target-i386: Fix long jumps/calls in long mode with REX.W set (malc)
- target-i386: fix lddqu SSE instruction (Aurelien Jarno)
- qemu-char.c: drop debug printfs from qemu_chr_parse_compat (Jan Kiszka)
- fix undefined shifts by >32 (Paolo Bonzini)
- Fix qemu -net user,hostfwd= example (Aurelien Jarno)
---
Also add a patch for e1000.c NIC to make wm(4) work on NetBSD guest:
---
* Reset EEPROM internal state on CS rise edge,
not SK rise edge during CS is low, per CS pin description in
the FM93C06 EEPROM manual:
"... a rising edge on this signal is required to reset the
internal state-machine to accept a new cycle ..."
Intel's em driver seems to explicitly raise and lower SK output
after CS is negated in em_standby_eeprom() so many other OSes
that use Intel's driver don't have this problem, but I can't find
articles that say the MICROWIRE or EEPROM spec requires such sequence.
* It isn't a good idea to use memset(,0,) to clear EEPROM state values,
so explicitly clear status members and preserve the previous EECD values
---
This patch is also filed as upstream QEMU bugs #581737.
While here, several tweaks in Makefile to appease pkglint.
Diffstat (limited to 'emulators')
-rw-r--r-- | emulators/qemu/Makefile | 15 | ||||
-rw-r--r-- | emulators/qemu/distinfo | 9 | ||||
-rw-r--r-- | emulators/qemu/patches/patch-ee | 37 |
3 files changed, 49 insertions, 12 deletions
diff --git a/emulators/qemu/Makefile b/emulators/qemu/Makefile index 9dcf88e0279..2595d021b41 100644 --- a/emulators/qemu/Makefile +++ b/emulators/qemu/Makefile @@ -1,8 +1,7 @@ -# $NetBSD: Makefile,v 1.66 2010/04/25 12:55:41 gson Exp $ +# $NetBSD: Makefile,v 1.67 2010/05/17 14:31:07 tsutsui Exp $ # -DISTNAME= qemu-0.12.3 -PKGREVISION= 2 +DISTNAME= qemu-0.12.4 CATEGORIES= emulators MASTER_SITES= http://download.savannah.gnu.org/releases/qemu/ @@ -70,20 +69,20 @@ INSTALLATION_DIRS= ${PKGMANDIR}/man1 share/doc/qemu UE_ARCHS+= alpha arm armeb cris i386 m68k microblaze mips mipsel UE_ARCHS+= nbd ppc ppc64 ppc64abi32 sh4 sh4eb sparc sparc32plus -UE_ARCHS+= sparc64 x86_64 +UE_ARCHS+= sparc64 x86_64 -.if !empty(OPSYS:M*BSD) || !empty(OPSYS:MDragonFly) +.if !empty(OPSYS:M*BSD) || !empty(OPSYS:MDragonFly) USER_EMUL= i386 x86_64 sparc sparc64 .elif !empty(OPSYS:MDarwin) USER_EMUL= i386 x86_64 sparc sparc64 ppc -.elif !empty(OPSYS:MLinux) +.elif !empty(OPSYS:MLinux) USER_EMUL= ${UE_ARCHS} -PLIST.nbd= Yes +PLIST.nbd= YES .endif PLIST_VARS+= ${UE_ARCHS} nbd .for _var_ in ${USER_EMUL} -PLIST.${_var_}= Yes +PLIST.${_var_}= YES .endfor post-install: diff --git a/emulators/qemu/distinfo b/emulators/qemu/distinfo index d1b708e8fb9..fca21111677 100644 --- a/emulators/qemu/distinfo +++ b/emulators/qemu/distinfo @@ -1,8 +1,8 @@ -$NetBSD: distinfo,v 1.54 2010/04/25 12:55:41 gson Exp $ +$NetBSD: distinfo,v 1.55 2010/05/17 14:31:07 tsutsui Exp $ -SHA1 (qemu-0.12.3.tar.gz) = 03ec307be094bb216bb5be17297e9f33e1a01b56 -RMD160 (qemu-0.12.3.tar.gz) = 10dd16ee970a19a6706491fa4425ddbea1da2ba3 -Size (qemu-0.12.3.tar.gz) = 4693581 bytes +SHA1 (qemu-0.12.4.tar.gz) = 1cc3200bf496c836f7c4256c1d12143dab9b82dc +RMD160 (qemu-0.12.4.tar.gz) = dbf5e02812b0df076e4ec8c20b7c382f7507645e +Size (qemu-0.12.4.tar.gz) = 4697077 bytes SHA1 (patch-aa) = 7180def64ebff88074666adef21ee1b5022b6881 SHA1 (patch-ao) = e515093b6ea99f9cba665de022fd62f3be911569 SHA1 (patch-ba) = 7c5043a39405f52b512e479a46fc76108580b7bc @@ -10,3 +10,4 @@ SHA1 (patch-dd) = 32661203ba023bea67cd7cde1f4088f4d0e5c582 SHA1 (patch-de) = 225eaa996fccc02b17be0099d943c75302600ada SHA1 (patch-dk) = 5538bebc08b0047e501469f9cb306cb798d0eb00 SHA1 (patch-ed) = ef1871b82dac9c89dc3c3d28c97805fabeea43ab +SHA1 (patch-ee) = 98081c9468d25564711f37cdff3958037f41b17d diff --git a/emulators/qemu/patches/patch-ee b/emulators/qemu/patches/patch-ee new file mode 100644 index 00000000000..e77647bb1f0 --- /dev/null +++ b/emulators/qemu/patches/patch-ee @@ -0,0 +1,37 @@ +$NetBSD: patch-ee,v 1.1 2010/05/17 14:31:07 tsutsui Exp $ + +See NetBSD PR pkg/43311 and QEMU Bugs #581737: +https://bugs.launchpad.net/qemu/+bug/581737 + +--- hw/e1000.c.orig 2010-02-24 05:54:38.000000000 +0900 ++++ hw/e1000.c 2010-05-08 04:04:39.000000000 +0900 +@@ -259,21 +259,20 @@ + + s->eecd_state.old_eecd = val & (E1000_EECD_SK | E1000_EECD_CS | + E1000_EECD_DI|E1000_EECD_FWE_MASK|E1000_EECD_REQ); ++ if (!(E1000_EECD_CS & val)) // CS inactive; nothing to do ++ return; ++ if (E1000_EECD_CS & (val ^ oldval)) { // CS rise edge; reset state ++ s->eecd_state.val_in = 0; ++ s->eecd_state.bitnum_in = 0; ++ s->eecd_state.bitnum_out = 0; ++ s->eecd_state.reading = 0; ++ } + if (!(E1000_EECD_SK & (val ^ oldval))) // no clock edge + return; + if (!(E1000_EECD_SK & val)) { // falling edge + s->eecd_state.bitnum_out++; + return; + } +- if (!(val & E1000_EECD_CS)) { // rising, no CS (EEPROM reset) +- memset(&s->eecd_state, 0, sizeof s->eecd_state); +- /* +- * restore old_eecd's E1000_EECD_SK (known to be on) +- * to avoid false detection of a clock edge +- */ +- s->eecd_state.old_eecd = E1000_EECD_SK; +- return; +- } + s->eecd_state.val_in <<= 1; + if (val & E1000_EECD_DI) + s->eecd_state.val_in |= 1; |