VOGONS


First post, by Mike_

User metadata
Rank Member
Rank
Member

I have a GA-7ZXE board to which I have soldered an ISA socket and some missing support components. Currently AWE64 seems to work fine, audio plays as you would expect, even when using sound fonts uploaded to the memory, and there are no audible errors. However, when running Creative's diagnose.exe, it fails on memory check saying that the DRAM onboard is faulty.

The attachment diagnose.gif is no longer available

The card works fine on another system, so presumably the problem is caused by ISA bus. So I tried tweaking PCI/ISA bridge settings with WPCREDIT, and lowering ISA clock from PCICLK/4 to PCICLK/12 makes the test pass. So it's probably some kind of signal integrity problem, possibly caused by some component still being missing. Could it be caused by resistor net for address lines 20-23 not being populated, even though AWE64 does not use those lines? I assumed that they would not be needed as they are unused, but I'm not sure how transfers exactly work on ISA bus.

The attachment dma5.jpg is no longer available

Reply 1 of 2, by Mike_

User metadata
Rank Member
Rank
Member

Also, have others had similar problems with KT133/KT133A boards and AWE32/AWE64?

Reply 2 of 2, by Mike_

User metadata
Rank Member
Rank
Member

Unfortunately soldering in the missing resistor network didn't help.

I came across spacesaver's sample memory transfer speed benchmark for AWE cards. As it has functionality for reads and writes to the memory, I modified it to write walking ones and zeros and then read them back to verify.

It turned out that the data itself isn't corrupted, but for some reason card's internal pointer gets sometimes out of whack, resulting in data being misaligned. Sometimes this happens during reads, in which case setting the pointer and reading data again gets the correct result. In case of writes, this of course results in data in memory being misaligned.

Values differed! Expected: 0xfffe @ 0x230ef0
Actual: 0x7fff
Retrying: value 0xfffe matches!
Values differed! Expected: 0xdfff @ 0x23f4ad
Actual: 0xefff
Retrying: value 0xdfff matches!
Values differed! Expected: 0x200 @ 0x22e279
Actual: 0x400
Retrying: value 0x400 doesn't match!
Values differed! Expected: 0x400 @ 0x22e27a
Actual: 0x800
Retrying: value 0x800 doesn't match!
Values differed! Expected: 0x800 @ 0x22e27b
Actual: 0x1000
Retrying: value 0x1000 doesn't match!
Values differed! Expected: 0x1000 @ 0x22e27c
Actual: 0x2000
Retrying: value 0x2000 doesn't match!
Values differed! Expected: 0x2000 @ 0x22e27d
Actual: 0x4000
Retrying: value 0x4000 doesn't match!
Values differed! Expected: 0x4000 @ 0x22e27e
Actual: 0x8000
Retrying: value 0x8000 doesn't match!

This is a bit odd, as it doesn't look like there's something wrong with data being transferred through ISA bus - the pointer should automatically update to next value after data has been read/written. The card isn't faulty either, as it works fine in another PC and there are no errors. It's also curious how this doesn't cause any audible errors.