aboutsummaryrefslogtreecommitdiffstats
path: root/emulators/qemu-devel
diff options
context:
space:
mode:
authornox <nox@FreeBSD.org>2011-09-17 03:17:12 +0800
committernox <nox@FreeBSD.org>2011-09-17 03:17:12 +0800
commit8f9dfb1f609c764dcf8ae4de9d5ec809f8800ee8 (patch)
treec08ea06f4b38fdbe18765fa8bfcfc7498f9f23ec /emulators/qemu-devel
parent80cf956ec263f7be8ae13f5bbb24bfb8ac3c84b4 (diff)
downloadfreebsd-ports-gnome-8f9dfb1f609c764dcf8ae4de9d5ec809f8800ee8.tar.gz
freebsd-ports-gnome-8f9dfb1f609c764dcf8ae4de9d5ec809f8800ee8.tar.zst
freebsd-ports-gnome-8f9dfb1f609c764dcf8ae4de9d5ec809f8800ee8.zip
- Add ahci emulation fix for FreeBSD guests. [1]
- Add OPTION to build a seabios git snapshot that add ahci boot disk emulation. [2] - Bump PORTREVISION. Submitted by: avg [1] Suggested by: avg [2]
Diffstat (limited to 'emulators/qemu-devel')
-rw-r--r--emulators/qemu-devel/Makefile6
-rw-r--r--emulators/qemu-devel/files/patch-hw-ide-ahci.c31
-rw-r--r--emulators/qemu-devel/pkg-plist2
3 files changed, 38 insertions, 1 deletions
diff --git a/emulators/qemu-devel/Makefile b/emulators/qemu-devel/Makefile
index 827c3191eac7..038d2c0e795a 100644
--- a/emulators/qemu-devel/Makefile
+++ b/emulators/qemu-devel/Makefile
@@ -7,6 +7,7 @@
PORTNAME= qemu
PORTVERSION= 0.15.0
+PORTREVISION= 1
CATEGORIES= emulators
MASTER_SITES= SAVANNAH:release \
http://wiki.qemu.org/download/:release \
@@ -44,6 +45,7 @@ OPTIONS= SAMBA "samba dependency (for -smb)" Off \
CURL "libcurl dependency (remote images)" On \
CDROM_DMA "IDE CDROM DMA" On \
PCAP "pcap dependency (networking with bpf)" On \
+ SEABIOS_GIT "add seabios snapshot (-bios seabios-devel.bin)" On \
USBREDIR "usb device network redirection (experimental!)" Off \
GNS3 "gns3 patches (udp, promiscuous multicast)" Off \
ADD_AUDIO "Emulate more audio hardware (experimental!)" Off \
@@ -133,6 +135,10 @@ CONFIGURE_ARGS+= --audio-card-list=ac97,es1370,sb16,cs4231a,adlib,gus,hda
RUN_DEPENDS+= ${LOCALBASE}/sbin/smbd:${PORTSDIR}/net/samba35
.endif
+.if defined(WITH_SEABIOS_GIT)
+RUN_DEPENDS+= ${LOCALBASE}/share/qemu/seabios-devel.bin:${PORTSDIR}/emulators/seabios-devel
+.endif
+
.if defined(NOPORTDOCS)
MAKE_ARGS+= NOPORTDOCS=${NOPORTDOCS}
.else
diff --git a/emulators/qemu-devel/files/patch-hw-ide-ahci.c b/emulators/qemu-devel/files/patch-hw-ide-ahci.c
new file mode 100644
index 000000000000..4b539d5e711a
--- /dev/null
+++ b/emulators/qemu-devel/files/patch-hw-ide-ahci.c
@@ -0,0 +1,31 @@
+--- qemu/hw/ide/ahci.c.prev 2011-09-11 16:39:53.000000000 +0300
++++ qemu/hw/ide/ahci.c 2011-09-11 16:39:48.000000000 +0300
+@@ -505,10 +505,7 @@ static void ahci_reset_port(AHCIState *s
+ ide_bus_reset(&d->port);
+ ide_state->ncq_queues = AHCI_MAX_CMDS;
+
+- pr->irq_stat = 0;
+- pr->irq_mask = 0;
+ pr->scr_stat = 0;
+- pr->scr_ctl = 0;
+ pr->scr_err = 0;
+ pr->scr_act = 0;
+ d->busy_slot = -1;
+@@ -1157,12 +1154,17 @@ void ahci_uninit(AHCIState *s)
+ void ahci_reset(void *opaque)
+ {
+ struct AHCIPCIState *d = opaque;
++ AHCIPortRegs *pr;
+ int i;
+
+ d->ahci.control_regs.irqstatus = 0;
+ d->ahci.control_regs.ghc = 0;
+
+ for (i = 0; i < d->ahci.ports; i++) {
++ pr = &d->ahci.dev[i].port_regs;
++ pr->irq_stat = 0;
++ pr->irq_mask = 0;
++ pr->scr_ctl = 0;
+ ahci_reset_port(&d->ahci, i);
+ }
+ }
diff --git a/emulators/qemu-devel/pkg-plist b/emulators/qemu-devel/pkg-plist
index 5f15d7ea8dd3..c6c1ffff3129 100644
--- a/emulators/qemu-devel/pkg-plist
+++ b/emulators/qemu-devel/pkg-plist
@@ -98,4 +98,4 @@ etc/qemu/target-x86_64.conf.sample
%%DATADIR%%/keymaps/th
%%DATADIR%%/keymaps/tr
@dirrm %%DATADIR%%/keymaps
-@dirrm %%DATADIR%%
+@dirrmtry %%DATADIR%%