Xonar EEPROM Failure: Difference between revisions

From AlsaProject
Jump to navigation Jump to search
(new page)
 
m (→‎Xonar EEPROM Failure: add another ID)
 
(61 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Xonar D2(X) EEPROM Failure==
==Xonar EEPROM Failure==


Sometimes, Xonar D2 or D2X cards randomly fail to be recognized.
Sometimes, Xonar PCI/PCI-E cards randomly fail to be recognized.


The driver refused to load or to install, and in Device Manager, the card is shown as an unknown sound card or as "C-Media Oxygen audio device".
The driver refused to load or to install, and in Device Manager, the card is shown as an unknown sound card or as "C-Media Oxygen audio device".
Line 10: Line 10:
when it gets overwritten, the main chip cannot read the subsystem IDs
when it gets overwritten, the main chip cannot read the subsystem IDs
and uses a default ID (13F6:8788) which is not recognized by the Xonar driver.)
and uses a default ID (13F6:8788) which is not recognized by the Xonar driver.)
To reliably detect whether the EEPROM was overwritten,
go into Device Manager, show the properties page of the device,
go to the "Details" tab, and select the property "Hardware IDs",
and look at the values after "SUBSYS_":
{| border="1"
| PCI\VEN_13F6&DEV_8788&SUBSYS_82691043
| OK (Xonar D2)
|-
| PCI\VEN_13F6&DEV_8788&SUBSYS_82751043
| OK (Xonar DX)
|-
| PCI\VEN_13F6&DEV_8788&SUBSYS_82B71043
| OK (Xonar D2X)
|-
| PCI\VEN_13F6&DEV_8788&SUBSYS_83141043
| OK (Xonar HDAV1.3)
|-
| PCI\VEN_13F6&DEV_8788&SUBSYS_83271043
| OK (Xonar DX)
|-
| PCI\VEN_13F6&DEV_8788&SUBSYS_834F1043
| OK (Xonar D1)
|-
| PCI\VEN_13F6&DEV_8788&SUBSYS_835C1043
| OK (Xonar Essence STX)
|-
| PCI\VEN_13F6&DEV_8788&SUBSYS_835D1043
| OK (Xonar Essence ST)
|-
| PCI\VEN_13F6&DEV_8788&SUBSYS_835E1043
| OK (Xonar HDAV1.3 Slim)
|-
| PCI\VEN_13F6&DEV_8788&SUBSYS_838E1043
| OK (Xonar DS)
|-
| PCI\VEN_13F6&DEV_8788&SUBSYS_84281043
| OK (Xonar Xense)
|-
| PCI\VEN_13F6&DEV_8788&SUBSYS_84671043
| OK (Xonar DG)
|-
| PCI\VEN_13F6&DEV_8788&SUBSYS_85211043
| OK (Xonar DGX)
|-
| PCI\VEN_13F6&DEV_8788&SUBSYS_85221043
| OK (Xonar DSX)
|-
| PCI\VEN_13F6&DEV_8788&SUBSYS_85F41043
| OK (Xonar Essence STX II)
|-
| PCI\VEN_13F6&DEV_8788&SUBSYS_'''878813F6'''<br>PCI\VEN_13F6&DEV_8788&SUBSYS_'''434D1043'''
| '''overwritten EEPROM'''
|}


==Causes==
==Causes==


When the driver accesses the fourth DAC chip in a certain way,
The exact cause is unknown.<BR>
the EEPROM incorrectly thinks that it is accessed, too,
It seems that the problem occurs only with certain computers or motherboards,
and interprets the data that is sent as a write command.
and after booting from a CD (i.e., (re)installation of an operating system, or using a live CD).
 
==Restoring the EEPROM==
 
I have written a tool that can restore the original contents of the EEPROM.
<br>
It needs direct access to the hardware, therefore, it can ''not'' be run inside Windows.
 
===In DOS===
 
If you have a working DOS, you can use this method. (This tool is run in the same way as Asus' xee01.bat.)
 
# Download [http://cladisch.fastmail.net/restoree.exe restoree.exe];
# boot DOS;<br>(this works only with a real DOS such as MS-DOS or DR-DOS or FreeDOS; an emulated DOS such as the DOS box of Windows or the DOS in an emulated computer (e.g. VMWare) will not work)
# run restoree.exe.
 
(source code: [http://cladisch.fastmail.net/restoree.c restoree.c])
 
===Booting from a floppy===
 
# Download this floppy image: [http://cladisch.fastmail.net/floppy.img floppy.img] (1.44 MB);
# write it to a floppy with rawrite.exe (which you can get [http://www.google.com/search?q=rawrite.exe somewhere on the Internet]);
# boot from the floppy.


Several factors must come together for this to happen:
===Booting from a CD===
* The fourth DAC and the EEPROM share a certain data line from the CMI8788 (AV200) chip.<br>(This happens only on the Xonar D2 and D2X, which adopted this design from C-Media's reference design; on later Xonar models, Asus has used a different communication method that does not use the shared pin.)
* The driver writes some registers of the 4th DAC chip.<br>(The Linux driver does this much more often than the Windows driver, so it is more likely that this problem occurs after you have run Linux.<br>I have updated the Linux driver to never access the DAC this way, but the new driver version is not yet in any published kernel.)
* The EEPROM chip thinks that it is being accessed. For this to happen, there must be a signal on the XEECS pin (which is ''not'' shared). In theory, this cannot happen, but it happens anyway, sometimes. Apparently, this is more likely with certain mainboards or computers, probably due to higher electric noise levels; the exact cause is unknown.


==Restoring the EEPROM==
# Download this ISO file: [http://cladisch.fastmail.net/restore_eeprom.iso restore_eeprom.iso] (1.8 MB);
# burn it to a blank CD-R;
# boot from the CD.
 
===Booting from a USB memory stick/flash disk===
 
# Make a bootable USB flash disk (see [http://www.sevenforums.com/tutorials/46707-ms-dos-bootable-flash-drive-create.html this description]), but do not put the xee01 files on the disk;
# download [http://cladisch.fastmail.net/restoree.exe restoree.exe] and put in on the flash disk;
# boot from the flash disk and run restoree.exe.
 
===Booting Linux===


I have written a small Linux program that tries to restore the original contents of the EEPROM:
The Linux Xonar driver has a simple version of the EEPROM restoring tool integrated since kernel 2.6.30 (which was released June 2009).<br>Just boot your installed Linux, or any recent Linux live CD.


# boot Linux (either from hard drisk or from a live CD);
However, this simple version is not able to correct all possible errors.
# download the package directly from <http://www.alsa-project.org/~clemens/oxygen_restore_eeprom.tar.gz>, or download it from Windows and copy it over with a USB stick;
# open a console;
# unpack the package:<br><code>tar xvzf oxygen_restore_eeprom.tar.gz<br>cd oxygen_restore_eeprom</code>
# run the program, as root:
#* either run first <code>su</code>, then <code>./oxygen_restore_eeprom_32</code>
#* or run <code>sudo ./oxygen_restore_eeprom_32</code>
# follow the instructions on the screen.


The package also contains a 64-bit version (<code>oxygen_restore_eeprom_64</code>) for the unlikely case that you're running a 64-bit-only Linux.
===Feedback===


Please [[mailto:clemens@ladisch.de tell me]] if it worked.
[mailto:clemens@ladisch.de clemens@ladisch.de]


===Warranty===
===Warranty===
Line 43: Line 119:


==Bug Reports==
==Bug Reports==
So far, five users have reported this problem:
Many users have reported this problem:


http://vip.asus.com/forum/view.aspx?board_id=21&id=20080308014957187<BR>
http://vip.asus.com/forum/view.aspx?board_id=21&id=20080815123512921<BR>
http://vip.asus.com/forum/view.aspx?board_id=21&id=20080815123512921<BR>
http://vip.asus.com/forum/view.aspx?board_id=21&id=20081109201810093<BR>
http://vip.asus.com/forum/view.aspx?board_id=21&id=20081109201810093<BR>
http://vip.asus.com/forum/view.aspx?board_id=21&id=20090108020749752<BR>
http://vip.asus.com/forum/view.aspx?board_id=21&id=20090108020749752<BR>
http://bugzilla.novell.com/show_bug.cgi?id=462365
http://vip.asus.com/forum/view.aspx?board_id=21&id=20090211084749940<BR>
http://vip.asus.com/forum/view.aspx?board_id=21&id=20090212184022002<BR>
http://vip.asus.com/forum/view.aspx?board_id=21&id=20090417024503409<BR>
http://vip.asus.com/forum/view.aspx?board_id=21&id=20090424193309127<BR>
http://vip.asus.com/forum/view.aspx?board_id=21&id=20090719054139406<BR>
http://vip.asus.com/forum/view.aspx?board_id=21&id=20100510174004218<BR>
http://vip.asus.com/forum/view.aspx?board_id=21&id=20100828085839182<BR>
http://vip.asus.com/forum/view.aspx?board_id=21&id=20110120170223383<BR>
http://vip.asus.com/forum/view.aspx?board_id=21&id=20110318045748367<BR>
http://vip.asus.com/forum/view.aspx?board_id=21&id=20120505102639207<BR>
http://vip.asus.com/forum/view.aspx?board_id=21&id=20130128083647397<BR>
http://vip.asus.com/forum/view.aspx?board_id=21&id=20130506122138947<BR>
http://bugzilla.novell.com/show_bug.cgi?id=462365<BR>
(and private e-mail)

Latest revision as of 12:22, 18 November 2017

Xonar EEPROM Failure

Sometimes, Xonar PCI/PCI-E cards randomly fail to be recognized.

The driver refused to load or to install, and in Device Manager, the card is shown as an unknown sound card or as "C-Media Oxygen audio device". Putting the card into another slot or another computer does not help.

This happens when the EEPROM on the card gets overwritten.
(This EEPROM stores the PCI subsystem vendor and product IDs; when it gets overwritten, the main chip cannot read the subsystem IDs and uses a default ID (13F6:8788) which is not recognized by the Xonar driver.)

To reliably detect whether the EEPROM was overwritten, go into Device Manager, show the properties page of the device, go to the "Details" tab, and select the property "Hardware IDs", and look at the values after "SUBSYS_":

PCI\VEN_13F6&DEV_8788&SUBSYS_82691043 OK (Xonar D2)
PCI\VEN_13F6&DEV_8788&SUBSYS_82751043 OK (Xonar DX)
PCI\VEN_13F6&DEV_8788&SUBSYS_82B71043 OK (Xonar D2X)
PCI\VEN_13F6&DEV_8788&SUBSYS_83141043 OK (Xonar HDAV1.3)
PCI\VEN_13F6&DEV_8788&SUBSYS_83271043 OK (Xonar DX)
PCI\VEN_13F6&DEV_8788&SUBSYS_834F1043 OK (Xonar D1)
PCI\VEN_13F6&DEV_8788&SUBSYS_835C1043 OK (Xonar Essence STX)
PCI\VEN_13F6&DEV_8788&SUBSYS_835D1043 OK (Xonar Essence ST)
PCI\VEN_13F6&DEV_8788&SUBSYS_835E1043 OK (Xonar HDAV1.3 Slim)
PCI\VEN_13F6&DEV_8788&SUBSYS_838E1043 OK (Xonar DS)
PCI\VEN_13F6&DEV_8788&SUBSYS_84281043 OK (Xonar Xense)
PCI\VEN_13F6&DEV_8788&SUBSYS_84671043 OK (Xonar DG)
PCI\VEN_13F6&DEV_8788&SUBSYS_85211043 OK (Xonar DGX)
PCI\VEN_13F6&DEV_8788&SUBSYS_85221043 OK (Xonar DSX)
PCI\VEN_13F6&DEV_8788&SUBSYS_85F41043 OK (Xonar Essence STX II)
PCI\VEN_13F6&DEV_8788&SUBSYS_878813F6
PCI\VEN_13F6&DEV_8788&SUBSYS_434D1043
overwritten EEPROM

Causes

The exact cause is unknown.
It seems that the problem occurs only with certain computers or motherboards, and after booting from a CD (i.e., (re)installation of an operating system, or using a live CD).

Restoring the EEPROM

I have written a tool that can restore the original contents of the EEPROM.
It needs direct access to the hardware, therefore, it can not be run inside Windows.

In DOS

If you have a working DOS, you can use this method. (This tool is run in the same way as Asus' xee01.bat.)

  1. Download restoree.exe;
  2. boot DOS;
    (this works only with a real DOS such as MS-DOS or DR-DOS or FreeDOS; an emulated DOS such as the DOS box of Windows or the DOS in an emulated computer (e.g. VMWare) will not work)
  3. run restoree.exe.

(source code: restoree.c)

Booting from a floppy

  1. Download this floppy image: floppy.img (1.44 MB);
  2. write it to a floppy with rawrite.exe (which you can get somewhere on the Internet);
  3. boot from the floppy.

Booting from a CD

  1. Download this ISO file: restore_eeprom.iso (1.8 MB);
  2. burn it to a blank CD-R;
  3. boot from the CD.

Booting from a USB memory stick/flash disk

  1. Make a bootable USB flash disk (see this description), but do not put the xee01 files on the disk;
  2. download restoree.exe and put in on the flash disk;
  3. boot from the flash disk and run restoree.exe.

Booting Linux

The Linux Xonar driver has a simple version of the EEPROM restoring tool integrated since kernel 2.6.30 (which was released June 2009).
Just boot your installed Linux, or any recent Linux live CD.

However, this simple version is not able to correct all possible errors.

Feedback

clemens@ladisch.de

Warranty

none

Bug Reports

Many users have reported this problem:

http://vip.asus.com/forum/view.aspx?board_id=21&id=20080308014957187
http://vip.asus.com/forum/view.aspx?board_id=21&id=20080815123512921
http://vip.asus.com/forum/view.aspx?board_id=21&id=20081109201810093
http://vip.asus.com/forum/view.aspx?board_id=21&id=20090108020749752
http://vip.asus.com/forum/view.aspx?board_id=21&id=20090211084749940
http://vip.asus.com/forum/view.aspx?board_id=21&id=20090212184022002
http://vip.asus.com/forum/view.aspx?board_id=21&id=20090417024503409
http://vip.asus.com/forum/view.aspx?board_id=21&id=20090424193309127
http://vip.asus.com/forum/view.aspx?board_id=21&id=20090719054139406
http://vip.asus.com/forum/view.aspx?board_id=21&id=20100510174004218
http://vip.asus.com/forum/view.aspx?board_id=21&id=20100828085839182
http://vip.asus.com/forum/view.aspx?board_id=21&id=20110120170223383
http://vip.asus.com/forum/view.aspx?board_id=21&id=20110318045748367
http://vip.asus.com/forum/view.aspx?board_id=21&id=20120505102639207
http://vip.asus.com/forum/view.aspx?board_id=21&id=20130128083647397
http://vip.asus.com/forum/view.aspx?board_id=21&id=20130506122138947
http://bugzilla.novell.com/show_bug.cgi?id=462365
(and private e-mail)