Contents. This kit contains the source to a FreeBSD ``new PCM'' audio driver for the Native Audio PCI function internal to the National Semiconductor Geode GX1/Cx5530 chipset, and integrated equivalents. This driver uses the Cx5530 southbridge's internal PCI audio hardware directly. It does not use the Soundblaster emulator that at one time was in the Cyrix ``hypervisor''.
Also included in this kit are 4 small ``new PCM'' audio test programs. These programs should work with any FreeBSD new PCM driver.
Driver. This driver is heavily commented and hopefully is useful to anyone studying the FreeBSD PCM audio system, or any similar PCI drivers using interfaces built on FreeBSD kernel objects.
Files of the Geode native audio driver:
Makefile
ns_geode.h
ns_geode.c
See the documentation at the head of the
ns_geode.c
file for instructions on building the driver. The
driver can be built as a loadable module.
Test Programs. The ``trivial'' PCM test programs are:
§ Test playing and recording PCM data:
>file_record save_file.pcm {bytes}
>file_play play_file.pcm
§ Play forever, or for a given number of iterations:
>file_blast play_file.pcm {bytes} {iterations}
§ Full duplex (simultaneous playing and receiving):
>full_duplex record_file.pcm play_file.pcm {bytes}
These are all small programs, to build them:
cc -o file_record file_record.c st_au_lib.c
cc -o file_play file_play.c st_au_lib.c
cc -o file_blast file_blast.c st_au_lib.c
cc -o full_duplex full_duplex.c st_au_lib.c
Status: All features exercised by the test programs are working. Testing has been done under FreeBSD 4.6 Stable. Suspend/Resume support is present but not yet tested.
All these files are under the new BSD license. Although I am using the UCSC ``alumni'' server for distribution, these files and their development are in no way connected to UCSC. Because the files are open source, this falls within the server's guidelines.
Tar Kit Files:
gx_audio_kit.tar.gz
gx_audio_kit.tar
Contact: To report bugs, contact:
brucem@mail.cruzio.com
brucem@alumni.cse.ucsc.edu