GeodeLX/CS553x - WDM driver - Release Notes Version 2.03.00 Apr. 17th, 2006 ---------------------------------------------------------------------------------------------- PRODUCT INFORMATION ---------------------------------------------------------------------------------------------- Overview: ========= The WDM audio driver can be used under Win98, Win2000, WindowsMe and WindowsXP systems. This driver supports full-duplex (Simultaneous recording and playback) and all AC97 lines (See AC97 Specifications). The driver also permits Geode LX based machines running Windows XP Embedded to use the WDM audio device. Functionality ============= - Wave Playback - Wave Recording - Full-Duplex - AC97 Lines Dependencies ============ Windows 98/2000/Me/XP Duraudio Version: 1.03.00 (DURAUDIO files need to be copied into the "driver" directory) Target platforms: ================= All 553x based platforms Defects Corrected ----------------- PBZ#3100 - Norwich XP audio driver fails HCT Audio Power Management (Lullaby) test. PBZ#6432 - Moving the recording volume slider causes the balance slider jumping back to the middle. PBZ#6489 - CD audio output plays while CD audio is muted. PBZ#7898 - Invalid Implementation of Master Volume Controls. KNOWN ERRATA -------------- NOne. Functionality yet to be implemented: ------------------------------------ None. Product files ------------------ LXWDMAu.SYS LXWDMAu.INF LXProp.dll LXWDMAu.cat -- HcT requirement Migrate.dll -- Microsoft binary, supplied without source ---------------------------------------------------------------------------------------------- VALIDATION ENVIRONMENT ---------------------------------------------------------------------------------------------- Validated on: Norwich Norwich Rev 2 Rework I, Norwich R3 Rework F GeodeLX C1 @ 433 MHz (1.25V) CS5536 B1 256MB RAM @ 333MHz/DDR PCI @ 66MHz Win XP w/ SP2 and all updates Castle GeodeROM v1.07.04 GeodeLX XP WDM Audio v2.03.00 GeodeLX XP Graphics v3.00.02 GeodeLX XP AES v2.01.00 Other Software: Windows Media Player 9, RealPlayer 10.5, QuickTime Player 6.5.2, Microsoft HCT 12.01.01 CRT: NEC MultiSync FP2141SB Keyboard/Mouse: PS/2 on Wren R2 ---------------------------------------------------------------------------------------------- INSTALLATION INSTRUCTIONS ---------------------------------------------------------------------------------------------- Build instructions for developers: ==================================== Using Command line: 1. Install the latest DDK (The latest XP DDK - 3790 builds drivers under Win98, Win2000 and WinXP) 2. Click on Start/Programs/Development Kits/Windows DDK 3790/Build Environments/ WindowsXP Free build environment This will open a Environment window. 3. Install the source in any directory on your system 4. Copy the specified Duraudio version into the driver subdirectory. 5. Change to the directory above the driver and PropPage folders. 6. Type build -c 7. The two resulting files are created and can be found in the following directories: - LXWDMAu.sys (in: driver\objfre_wxp_x86\i386) - LXProp.dll (in: PropPage\objfre_wxp_x86\i386) 8. Copy these to the bin directory for future use INSTALLATION INSTRUCTIONS ========================== Windows XP: ---------- 1. Copy all files in the "bin" subdirectory to a folder available to the target machine 2. At windows startup, Windows finds a "Multimedia Audio Controller". If Windows does not find the device at startup, this is because it is listed in the device manager as an "Unknown device" or it has a driver installed already. If that's the case, do the following: a. Delete the device from the device manager. b. Reboot c. Go back to step 2 3. Click "Install from a list or specific location (Advanced)" and click "Next" 4. Select the "Include this location in the search" option. 5. Enter the path of the folder used in step 1 in the combo box and click "Next" 6. Select "Geode - Native Mode Driver (Windows 2000/XP). 7. Windows shows the Dialog saying that the driver has not passed Windows Logo Testing. 8. Click "Continue Anyway". 9. Click on "Finish" 10.Reboot your machine (If needed) Windows 2000: ------------ 1. Copy all files in the "bin" subdirectory to a folder available to the target machine 2. At windows startup, Windows finds a "Multimedia Audio Controller" device. If Windows does not find the device at startup, this is because it is listed in the device manager as an "Unknown device" or it has a driver installed already. If that's the case, do the following: a. Delete the device from the device manager. b. Reboot. c.Go back to step 2 3. Click Next. 4. Select the Option: "Search for a suitable driver for my device (Recomended)" and click on "Next" 5. Check the Specify location checkbox. 6. Enter the path of the folder used in step 1. 7. Click on next 8. Click on next 9. Windows shows the "Digital Signature Not Found" Dialog 10. Click on Yes 11. Reboot your machine (If needed) Windows 98: ---------- 1. Copy all files in the "bin" subdirectory to a directory called "C:\AMD" 2. At windows startup, Windows finds a "PCI Multimedia Audio Device". Click "Next" If Windows does not find the device at startup, this is because it is listed in the device manager as an "Unknown device" or it has a driver installed already. if that's the case, do the following: a. Delete the device from the device manager. b. Reboot. c.Go back to step 2 3. Select the Option: "Search for the best driver for your device (Recomended)" and click on "Next" 4. Check the Specify location checkbox. 5. Enter the path of the directory created on step 1. 6. Windows find the .inf file. Click on "Next". 7. Windows finds "GeodeLX Audio Driver (WDM)".Click on "Next". 8. After completed, Click on "Finish". 9. Reboot your machine (If needed) ----------------------------------------------------------------------------- RELEASE HISTORY ----------------------------------------------------------------------------- ------------------------------------ Mar. 17th, 2006 Version 2.03.00 ------------------------------------ FUNCTIONAL CHANGES ------------------- - Fixed mixer line issues. FILE CHANGES ------------- prophnd.c - PropertyHandler_Level() and PropertyHandler_OnOff() for mis. mixer line controls. - Moved NODE_VIRT_MASTERMONO_VOLUME from mono case to stereo case for enabling balance control for the Master Line. sources - Removed 'MIXER_FIX' C_DEFINES value. Native.rc - Changed version numbers. GX2Prop.rc - Changed version numbers. lxwdmau.inf - Changed version numbers. DEFECTS CORRECTED ------------------ PBZ#3100 - Norwich XP audio driver fails HCT Audio Power Management (Lullaby) test. PBZ#6432 - Moving the recording volume slider causes the balance slider jumping back to the middle. PBZ#6489 - CD audio output plays while CD audio is muted. PBZ#7898 - Invalid Implementation of Master Volume Controls. KNOWN ERRATA -------------- PBZ#8025 Geode LX WinXP audio driver 2.03.00 fails audio stress test on Norwich Rev 2 boards Under Investigation =========================================================================================== ------------------------------------ Dec. 14th, 2005 Version 2.02.01 ------------------------------------ FUNCTIONAL CHANGES ------------------- - Fixed mixer line issues. FILE CHANGES ------------- prophnd.c - PropertyHandler_Level() for mis. mixer line controls. - SetMultichannelVolume() for handing additional PROP_MOST_NEGATIVE case. sources - Added 'MIXER_FIX' C_DEFINES value. Native.rc - Changed version numbers. GX2Prop.rc - Changed version numbers. lxwdmau.inf - Changed version numbers. DEFECTS CORRECTED ------------------ PBZ#5679 - Recording Control Balance slider moves Volume slider to minimum. PBZ#6138 - Moving master volume control to minimum increases volume. PBZ#6139 - Master volume control slider moves balance slider to left. PBZ#6141 - Moving balance slider left or right mutes the volume. PBZ#6143 - Moving balance slider permanently mutes volume when balance slider is moved. KNOWN ERRATA -------------- PBZ#3100: Norwich XP audio driver fails HCT Audio Power Management (Lullaby) test PBZ#6432: Moving the recording volume slider causes the balance slider jumping back to the middle PBZ#6489: CD audio output plays while CD audio is muted =========================================================================================== ------------------------------------ Oct. 17th, 2005 Version 2.02.00 ------------------------------------ FUNCTIONAL CHANGES ------------------- - None. FILE CHANGES ------------- Geodewave.cpp - Changed code name. sources - Changed code name and version numbers. Native.rc - Changed code name and version numbers. GX2Prop.rc - Changed code name and version numbers. lxwdmau.inf - Changed code name and version numbers. DEFECTS CORRECTED ------------------ PBZ#5634 - Geode LX Windows XP 2.01.05 WDM Audio driver branded as "GX3" KNOWN ERRATA -------------- None. =========================================================================================== ------------------------------------ June 9th, 2005 Version 2.01.05 ------------------------------------ FUNCTIONAL CHANGES ------------------- - Adjusted CD mute test returning false condition on the 2nd(right) channel. - Added more copy-right-protection checking to enhance the Digital rights management function. FILE CHANGES ------------- prophnd.c - PropertyHandler_Level() for CD mute and DRM controls. - PropertyHandler_Ulong() for DRM controls. sources - Added 'USE_GEODE' C_DEFINES value. Native.rc - Changed version numbers GX2Prop.rc - Changed version numbers gx3wdmau.inf - Changed version numbers DEFECTS CORRECTED ------------------ PBZ#3093, #3094, #3100, #3101, #2386 and #927 KNOWN ERRATA -------------- None. =========================================================================================== ------------------------------------ Apr. 04th, 2005 Version 2.01.04 ------------------------------------ FUNCTIONAL CHANGES ------------------- - Adjusted Max. and Min. dB values of the Microphone volume control. - Added negative max level detection for all recording virtual controls in the situation of the bottom reached, and then returned and cached this value. FILE CHANGES ------------- prophnd.c - GetDBValues() for microphone volume controls. - PropertyHandler_Level() for recording controls. - PropertyHandler_OnOff() for mute controls in Playback panel. Native.rc - Changed version numbers GX2Prop.rc - Changed version numbers gx3wdmau.inf - Changed version numbers DEFECTS CORRECTED ------------------ PBZ#3028, #3598, #3031, #3597 KNOWN ERRATA -------------- None. =========================================================================================== ------------------------------------ Mar. 28th, 2005 Version 2.01.03 ------------------------------------ FUNCTIONAL CHANGES ------------------- Duraudio library - Modified D3 resume routine to fix PBZ#3653. FILE CHANGES ------------- os_inc.c - Fixed mmunmapiospace function called in a wrong condition. It caused BSOD when running PMClient regression test on the resume. Although these mminmapiospace functions are not necessary for D3 resume routine to use, the bug should be fixed. Native.rc - Changed version numbers GX2Prop.rc - Changed version numbers gx3wdmau.inf - Changed version numbers DEFECTS CORRECTED ------------------ PBZ#3653 KNOWN ERRATA -------------- None. =========================================================================================== ------------------------------------ Jan. 28th, 2005 Version 2.01.02 ------------------------------------ FUNCTIONAL CHANGES ------------------- Duraudio library - Modified power state to match ACPI spec. FILE CHANGES ------------- Native.rc - Changed version numbers GX2Prop.rc - Changed version numbers gx3wdmau.inf - Changed version numbers DEFECTS CORRECTED ------------------ None. KNOWN ERRATA -------------- None. =========================================================================================== ------------------------------------ Sep. 8th, 2004 Version 2.01.01 ------------------------------------ FUNCTIONAL CHANGES ------------------- None. FILE CHANGES ------------- Native.rc - Changed version numbers GX2Prop.rc - Changed version numbers gx3wdmau.inf - Added CS5536 audio device ID. DEFECTS CORRECTED ------------------ None. KNOWN ERRATA -------------- None. =========================================================================================== ------------------------------------ Sep. 2nd, 2004 Version 2.01.00 ------------------------------------ FUNCTIONAL CHANGES ------------------- Added CS5536 support. FILE CHANGES ------------- Duraudio library - Added CS5536 support. Native.rc - Changed version numbers GX2Prop.rc - Changed version numbers DEFECTS CORRECTED ------------------ None. KNOWN ERRATA -------------- None. =========================================================================================== ------------------------------------ June 4th, 2004 Version 2.00.02 ------------------------------------ FUNCTIONAL CHANGES ------------------- None. FILE CHANGES ------------- GEODEwave.cpp - Fixed DMA underrun issue. Native.rc - Changed version numbers GX2Prop.rc - Changed version numbers DEFECTS CORRECTED ------------------ BZ#332(Windsor): Media Player 9 pause/play causes loss of audio. - Cause: DMA underrun - Fix: the amount of delay is implemented when underrun is detected. KNOWN ERRATA -------------- None. =========================================================================================== ------------------------------------ Mar. 21st, 2004 Version 2.00.01 ------------------------------------ FUNCTIONAL CHANGES ------------------- None. FILE CHANGES ------------- GEODEwave.cpp - Fixed DMA overrun issue. GEODEwave.h - Fixed DMA overrun issue. common.cpp - Added code for excluding 6-bit feature in LM4549A and LM4550 prophnd.cpp - Added 6-bit support detection in the virtual master volume line. Native.rc - Changed version numbers GX2Prop.rc - Changed version numbers DEFECTS CORRECTED ------------------ #157.14 Blue Screen in multiple stop-play recording cycles using Sound Recorder when Media Player plays a digital clip. (Same issue on Windsor) - Cause: DMA overrun - Fix: Allocate additional buffer to handle the overrun case. KNOWN ERRATA -------------- None. =========================================================================================== ------------------------------------ Jan. 26th, 2004 Version 2.00.00 ------------------------------------ FUNCTIONAL CHANGES ------------------- - Initial Release with GX3/5535 support. FILE CHANGES ------------- Native.rc - Changed version numbers GX2Prop.rc - Changed version numbers DEFECTS CORRECTED ------------------ None. KNOWN ERRATA -------------- None. =========================================================================================== ------------------------------------ Oct. 23rd, 2003 Version 1.03.09 ------------------------------------ FUNCTIONAL CHANGES ------------------- - Update PRD address right after PRD table is allocated. - Clean some redundant spinlocks. - Add a Free virtual memory function. FILE CHANGES ------------- common.cpp - release virtual memory in the destructor GEODEwave.cpp - Clean redundant spinlocks miniwave.cpp - modify ISR os_inc.h - Add free virtual memory function Native.rc - Changed version numbers GX2Prop.rc - Changed version numbers All of files have new Copyright. DEFECTS CORRECTED ------------------ #157.12 Can't play file with Sound Recorder at the same time as Analog CD Audio - Cause: Recording channel PRD address is read before being updated. - Fix: Update PRD address right after PRD table is allocated. KNOWN ERRATA -------------- #157.14 Blue Screen in multiple stop-play recording cycles using Sound Recorder when Media Player plays a digital clip. =========================================================================================== ------------------------------------ July 23rd, 2003 Version 1.3.8 ------------------------------------ FUNCTIONAL CHANGES ------------------- Fix bug that showed as an occassional loss of sound when starting Music on the Pinball game. The problem was due to the original starving state additions, which did not allow for data resuming from a starved condition, which is what can happen in the test sequence. The fix was to change the code for the change to KSSTATE_RUN to allow for pause or starving state in doing the resume. FILE CHANGES ------------- Native.rc - Changed version numbers GX2Prop.rc - Changed version numbers GEODEWave.cpp - change KSSTATE_RUN logic =========================================================================================== ------------------------------------ July 17th, 2003 Version 1.3.7 ------------------------------------ FUNCTIONAL CHANGES ------------------- It was discovered that V1.1.7 of Duraudio was built upon an outdated version of duraudio. V1.3.7 is the same driver code, compiled with V1.1.9 of Duraudio, which is the 1.1.8 changes made to the latest base. FILE CHANGES ------------- Native.rc - Changed version numbers GX2Prop.rc - Changed version numbers =========================================================================================== ------------------------------------ July 11th, 2003 Version 1.3.6 ------------------------------------ FUNCTIONAL CHANGES ------------------- PRD table no longer contains an eot after last valid entry. Testing showed that in high use scenarios, there was a race condition that could cause the enable bit to not show the engine disabled for an amount of time, allowing the driver and hw to get out of sync. Instead, the driver will now pause the engine in low data situations and restart it once additional data is available. FILE CHANGES ------------- GEODEWave.cpp - Changed PRD table logic to use pause Native.rc - Changed version numbers GX2Prop.rc - Changed version numbers DEFECTS CORRECTED ------------------ - Issue #157.7 - Loss of output when playing multiple sound files. CAUSE: Previous fix for Static, created a race condition. The dma engine was not clearing its enable bit when it stopped for a long enough period of time that the driver and HW could get out of sync. This only showed up during high use (such as playing mulktiple files). FIX: Remove previous EOT fix, and let the driver pause the HW when it detects a low data situation. KNOWN ERRATA -------------- None =========================================================================================== ------------------------------------ June 19th, 2003 Version 1.3.5 ------------------------------------ FUNCTIONAL CHANGES ------------------- PRD table now contains an eot after last valid entry, allowing for data starvation with proper DMA shutdown. Appropriate startup code also included FILE CHANGES ------------- - Updated to use DURAUDIO_1.1.8 files (Check DURAUDIO_1.1.8 release notes) Duraudio.h Duraudio.c - Added functions and definitions used by DURAUDIO_1.1.7 - Added new code for OS_Sleep GEODEWave.cpp - Changed PRD table logic to use EOT Native.rc - Changed version numbers GX2Prop.rc - Changed version numbers DEFECTS CORRECTED ------------------ - Issue #171.12 - static on playing. CAUSE: Previous fix for BUZZ on pause, created a race condition. The dma engine was being started and stopped as the number of buffers reached a low level, producing static. FIX: Build PRD table with EOT so that HW will stop when it runs out of data instead of trying to guess when data is ending due to low buffers. KNOWN ERRATA -------------- None =========================================================================================== ------------------------------------ May 19th, 2003 Version 1.3.4 ------------------------------------ FUNCTIONAL CHANGES ------------------- None FILE CHANGES ------------- - Updated to use DURAUDIO_1.1.7 files (Check DURAUDIO_1.1.7 release notes) os_inc.h os_inc.c - Added functions and definitions used by DURAUDIO_1.1.7 - Added new code for OS_Sleep ac97reg.h adapter.cpp adapter.h makefile - Removed references to other manufacturer. common.cpp - Added Power management code. GEODEWave.cpp - Added the fix for issue 109.38 (Described below). DEFECTS CORRECTED ------------------ - Issue #109.38 - Sound repeats making a buzzing noise. CAUSE: On pause, MediaPlayer9 stops sending data and starves the driver. The driver was not stopping the DMA only when head (Bottom of the SGD list) was equal tail (Top of the SGD list) and it was missing some conditions. The result was a repeat of the last SGD entry. That generated the Buzzing noise. FIX: Stopping the DMA anytime we have 2 or less SGD entries left to play. KNOWN ERRATA -------------- None =========================================================================================== ------------------------------------ March 18th, 2003 Version 1.3.2 ------------------------------------ FUNCTIONAL CHANGES ------------------- None FILE CHANGES ------------- - Updated to use DURAUDIO_1.1.4 files Sources - Changed build options (Removed debug info to minimize binary file size). os_inc.h os_inc.c - Added functions and definitions used by DURAUDIO_1.1.4 GEODEWave.cpp - Increased maximum number of frames allocated (According to new Windows DDK example) DEFECTS CORRECTED ------------------ None KNOWN ERRATA -------------- - Clicking on beginning of Playback and occasional loop on pause state. - Caused by hard drive access. The same behavior is seen on a SoundBlaster ES1371 card on our platform. Erratas from the last versions with corrections/updates ------------------------------------------------------- 1. MP3 playback under XP takes up around 40% of CPU load.. - CORRECTION: The CPU load is high on .mp3 (40%) and .wav files (33%). Same results were observed using a SoundBlaster ES1371 on Hawk. CPU loads on a Pentium III 800Mhz system with a SoundBlaster Live card using MediaPlayer are: .mp3: 16%, .wav: 13%. The majority of the CPU load is used by WindowsMedia Player. Playback of a .wav file in our hardware using SoundRecorder takes up only 1 to 2%. 2. Line-in and microphone volume controls do not function correctly. - CORRECTION: Line-In and Mic inputs function correctly. 3. Recording distortion at 0db in XP. - CORRECTION: Recording works and it was verified in both Mic and Line-In 4. WDM audio driver does not install when XpressGraphics is present. - UPDATE: Driver installs with Graphics driver Version 1.1.3 Beta. 5. Full duplex operation is not supported in this release. - CORRECTION: Full-Duplex works since version 1.0.0 Tested this version with simultaneous recording (With SoundRecorder) and playback (With MediaPlayer). 6. Headphone operation is not supported in this release.. - CORRECTION: There is no headphone support (Headphone output jack) on Hawk. 7. Combinations of ports (i.e. headphone, microphone, line-in, line-out) is not supported in this release. - CORRECTION: Such support does not exist. 8. Sound recording is not supported in this release. - CORRECTION: Recording was tested and it works on both SoundRecorder and Cool edit PRO. 9. Operation with the BTB_SWAPSIF flag enabled in BIOS (1.09) causes system crash. - UPDATE: True for XpressROM 1.0.9, but the driver is currently working on XpressROM 1.12 =========================================================================================== ------------------------------------ February 7, 2003 Version 1.3.1 ------------------------------------ FUNCTIONAL CHANGES ------------------- None FILE CHANGES ------------- Release notes, new Duraudio. DEFECTS CORRECTED ------------------ Build instructions were corrected. Built against the newest version of duraudio. KNOWN ERRATA ------------------ MP3 playback under XP takes up around 40% of CPU load. Line-in and microphone volume controls do not function correctly. Recording distortion at 0db in XP. WDM audio driver does not install when XpressGraphics is present. Full duplex operation is not supported in this release. Headphone operation is not supported in this release.. Combinations of ports (i.e. headphone, microphone, line-in, line-out) is not supported in this release. Sound recording is not supported in this release. Operation with the BTB_SWAPSIF flag enabled in BIOS (1.09) causes system crash. =========================================================================================== ------------------------------------ January 31, 2003 Version 1.3.0 ------------------------------------ FUNCTIONAL CHANGES ------------------- None FILE CHANGES ------------- None DEFECTS CORRECTED ------------------ Duraudio fix to PRD index. Was causing system crash on audio playback. KNOWN ERRATA ------------------ MP3 playback under XP takes up around 40% of CPU load. Line-in and microphone volume controls do not function correctly. Recording distortion at 0db in XP. WDM audio driver does not install when XpressGraphics is present. Full duplex operation is not supported in this release. Headphone operation is not supported in this release.. Combinations of ports (i.e. headphone, microphone, line-in, line-out) is not supported in this release. Sound recording is not supported in this release. Operation with the BTB_SWAPSIF flag enabled in BIOS (1.09) causes system crash. =========================================================================================== ------------------------------------ January 17th, 2003 Version 1.2.0 ------------------------------------ FUNCTIONAL CHANGES ------------------- None, built with Duraudio 1.1.0 FILE CHANGES ------------- None DEFECTS CORRECTED ------------------ None KNOWN ERRATA ------------------ MP3 playback under XP takes up around 40% of CPU load. =========================================================================================== ----------------------------------- November 21st, 2002 Version 1.1.6 ----------------------------------- FUNCTIONAL CHANGES ------------------- None FILE CHANGES ------------- Removed the workaround for the LM4549 bug. This fix was causing other issues. DEFECTS CORRECTED ------------------ None =========================================================================================== ----------------------------------- November 12th, 2002 Version 1.1.4 ----------------------------------- FUNCTIONAL CHANGES ------------------- None FILE CHANGES ------------- Fixed Version number and instructions Issues 157.2 and 157.3 DEFECTS CORRECTED ------------------ None =========================================================================================== ----------------------------------- September 27th, 2002 Version 1.1.2 ----------------------------------- FUNCTIONAL CHANGES ------------------- None FILE CHANGES ------------- Fixed Version number DEFECTS CORRECTED ------------------ Issue 118.172: Write to codec on CS5535 platforms. Issue 117.1: CD Volume does not work correctly. Fixed codec initialization code. =========================================================================================== ----------------------------------- September 19th, 2002 Version 1.1.0 ----------------------------------- FUNCTIONAL CHANGES ------------------- None FILE CHANGES ------------- Fixed Version number DEFECTS CORRECTED ------------------ None =========================================================================================== ----------------------------------- September 18th, 2002 Version 1.0.1 ----------------------------------- FUNCTIONAL CHANGES ------------------- None FILE CHANGES ------------- Added missing Makefile. Fixed ReleaseNotes.txt. Duraudio.c - Changed the way to stop playback (Clear Start bit). Duraudio.h DEFECTS CORRECTED ------------------ None =========================================================================================== ----------------------------------- August 15th, 2002 Version 1.0.0 ----------------------------------- First Version released to validation FUNCTIONAL CHANGES ------------------- None FILE CHANGES ------------- None DEFECTS CORRECTED ------------------ None =========================================================================================== ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- VALIDATION NOTES ----------------------------------------------------------------------------- ===========================================================================================