PCI AC97 emulation by malc.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3918 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
balrog 2008-01-14 04:27:55 +00:00
parent ca9cc28c62
commit e5c9a13e26
5 changed files with 1382 additions and 2 deletions

9
configure vendored
View File

@ -85,6 +85,7 @@ EXESUF=""
gdbstub="yes" gdbstub="yes"
slirp="yes" slirp="yes"
adlib="no" adlib="no"
ac97="no"
oss="no" oss="no"
dsound="no" dsound="no"
coreaudio="no" coreaudio="no"
@ -280,6 +281,8 @@ for opt do
;; ;;
--enable-adlib) adlib="yes" --enable-adlib) adlib="yes"
;; ;;
--enable-ac97) ac97="yes"
;;
--disable-kqemu) kqemu="no" --disable-kqemu) kqemu="no"
;; ;;
--enable-profiler) profiler="yes" --enable-profiler) profiler="yes"
@ -406,6 +409,7 @@ echo " --disable-sdl disable SDL"
echo " --enable-cocoa enable COCOA (Mac OS X only)" echo " --enable-cocoa enable COCOA (Mac OS X only)"
echo " --enable-mingw32 enable Win32 cross compilation with mingw32" echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
echo " --enable-adlib enable Adlib emulation" echo " --enable-adlib enable Adlib emulation"
echo " --enable-ac97 enable AC97 emulation"
echo " --enable-coreaudio enable Coreaudio audio driver" echo " --enable-coreaudio enable Coreaudio audio driver"
echo " --enable-alsa enable ALSA audio driver" echo " --enable-alsa enable ALSA audio driver"
echo " --enable-esd enable EsoundD audio driver" echo " --enable-esd enable EsoundD audio driver"
@ -719,6 +723,7 @@ if test "$sdl" != "no" ; then
fi fi
echo "mingw32 support $mingw32" echo "mingw32 support $mingw32"
echo "Adlib support $adlib" echo "Adlib support $adlib"
echo "AC97 support $ac97"
echo "CoreAudio support $coreaudio" echo "CoreAudio support $coreaudio"
echo "ALSA support $alsa" echo "ALSA support $alsa"
echo "EsounD support $esd" echo "EsounD support $esd"
@ -895,6 +900,10 @@ if test "$adlib" = "yes" ; then
echo "CONFIG_ADLIB=yes" >> $config_mak echo "CONFIG_ADLIB=yes" >> $config_mak
echo "#define CONFIG_ADLIB 1" >> $config_h echo "#define CONFIG_ADLIB 1" >> $config_h
fi fi
if test "$ac97" = "yes" ; then
echo "CONFIG_AC97=yes" >> $config_mak
echo "#define CONFIG_AC97 1" >> $config_h
fi
if test "$oss" = "yes" ; then if test "$oss" = "yes" ; then
echo "CONFIG_OSS=yes" >> $config_mak echo "CONFIG_OSS=yes" >> $config_mak
echo "#define CONFIG_OSS 1" >> $config_h echo "#define CONFIG_OSS 1" >> $config_h

1349
hw/ac97.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -10,3 +10,5 @@ int Adlib_init (AudioState *s, qemu_irq *pic);
/* gus.c */ /* gus.c */
int GUS_init (AudioState *s, qemu_irq *pic); int GUS_init (AudioState *s, qemu_irq *pic);
/* ac97.c */
int ac97_init (PCIBus *buf, AudioState *s);

View File

@ -166,6 +166,8 @@ Creative SoundBlaster 16 sound card
@item @item
ENSONIQ AudioPCI ES1370 sound card ENSONIQ AudioPCI ES1370 sound card
@item @item
Intel 82801AA AC97 Audio compatible sound card
@item
Adlib(OPL2) - Yamaha YM3812 compatible chip Adlib(OPL2) - Yamaha YM3812 compatible chip
@item @item
PCI UHCI USB controller and a virtual USB hub. PCI UHCI USB controller and a virtual USB hub.
@ -173,8 +175,8 @@ PCI UHCI USB controller and a virtual USB hub.
SMP is supported with up to 255 CPUs. SMP is supported with up to 255 CPUs.
Note that adlib is only available when QEMU was configured with Note that adlib and ac97 are only available when QEMU was configured
-enable-adlib with --enable-adlib, --enable-ac97 respectively.
QEMU uses the PC BIOS from the Bochs project and the Plex86/Bochs LGPL QEMU uses the PC BIOS from the Bochs project and the Plex86/Bochs LGPL
VGA BIOS. VGA BIOS.
@ -334,10 +336,18 @@ available sound hardware.
@example @example
qemu -soundhw sb16,adlib hda qemu -soundhw sb16,adlib hda
qemu -soundhw es1370 hda qemu -soundhw es1370 hda
qemu -soundhw ac97 hda
qemu -soundhw all hda qemu -soundhw all hda
qemu -soundhw ? qemu -soundhw ?
@end example @end example
Note that Linux's i810_audio OSS kernel (for AC97) module might
require manually specifying clocking.
@example
modprobe i810_audio clocking=48000
@end example
@item -localtime @item -localtime
Set the real time clock to local time (the default is to UTC Set the real time clock to local time (the default is to UTC
time). This option is needed to have correct date in MS-DOS or time). This option is needed to have correct date in MS-DOS or

10
vl.c
View File

@ -7990,6 +7990,16 @@ struct soundhw soundhw[] = {
}, },
#endif #endif
#ifdef CONFIG_AC97
{
"ac97",
"Intel 82801AA AC97 Audio",
0,
0,
{ .init_pci = ac97_init }
},
#endif
{ {
"es1370", "es1370",
"ENSONIQ AudioPCI ES1370", "ENSONIQ AudioPCI ES1370",