Hi,

Okay, I'm stuck.

While trying to load a larger database (small .mp3 files will load fine), I am unable to get it to complete the load. It will download the database, then try to reinitialize the player and it doesn't ever come back. It marks the "Retreiving Database" field with a Yellow Exclamation Point and dies with a message window that says it couldn't complete the load.

The serial boot string after the event happened and after a player power-off, then power-on looks like this (I found out that it was rolling the first part (same message), for hours before I stopped it):


***************************************************************
Code:
Flags: Nzcv  IRQs on  FIQs on  Mode USER_32  Segment user
Control: C0F3117D  Table: C0F3117D  DAC: 00000015
Timezone: GB
player: permission fault on section, address=0xffffffd8, code 2
pc : [<020cb080>]    lr : [<02000104>]
sp : bfffff5c  ip : 00000000  fp : 00000000
r10: 00000000  r9 : 00000000  r8 : 00000000
r7 : 00000000  r6 : 00000000  r5 : 00000000  r4 : 00000000
r3 : 020000c0  r2 : bfffff64  r1 : 00000001  r0 : 00000000
Flags: Nzcv  IRQs on  FIQs on  Mode USER_32  Segment user
Control: C0F3117D  Table: C0F3117D  DAC: 00000015
Timezone: GB
player: permission fault on section, address=0xffffffd8, code 2
pc : [<020cb080>]    lr : [<02000104>]
sp : bfffff5c  ip : 00000000  fp : 00000000
r10: 00000000  r9 : 00000000  r8 : 00000000
r7 : 00000000  r6 : 00000000  r5 : 00000000  r4 : 00000000
r3 : 020000c0  r2 : bfffff64  r1 : 00000001  r0 : 00000000
Flags: Nzcv  IRQs on  FIQs on  Mode USER_32  Segment user
Control: C0F3117D  Table: C0F3117D  DAC: 00000015
Timezone: GB
player: permission fault on section, address=0xffffffd8, code 2
pc : [<020cb080>]    lr : [<02000104>]
sp : bfffff5c  ip : 00000000  fp : 00000000
r10: 00000000  r9 : 00000000  r8 : 00000000
r7 : 00000000  r6 : 00000000  r5 : 00000000  r4 : 00000000
r3 : 020000c0  r2 : bfffff64  r1 : 00000001  r0 : 00000000
Flags: Nzcv  IRQs on  FIQs on  Mode USER_32  Segment user
Control: C0F3117D  Table: C0F3117D  DAC: 00000015

empeg-car bootstrap v1.02 20001106 ([email protected])
If there is anyone present who wants to upgrade the flash, let them speak now,
or forever hold their peace...it seems not. Let fly the Penguins of Linux!

e000 v1.04
Copying kernel...
Calling linux kernel...
Uncompressing Linux..................................... done, booting the kerne
l.
Linux version 2.2.17-rmk5-np17-empeg55-hijack-v508 ([email protected]) (gcc version
2.95.3 20010315 (release)) #2 Fri Jan 9 16:06:35 EST 2009
Processor: Intel StrongARM-1100 revision 11
Checking for extra DRAM:
c1000000: wrote ffffffff, read e28cc001
NetWinder Floating Point Emulator V0.94.1 (c) 1998 Corel Computer Corp.
empeg-car player (hardware revision 9, serial number 40103852) 16MB DRAM
Command line: mem=16m
Calibrating delay loop... 207.67 BogoMIPS
Memory: 15000k/16M available (996k code, 20k reserved, 364k data, 4k init)
Dentry hash table entries: 2048 (order 2, 16k)
Buffer cache hash table entries: 16384 (order 4, 64k)
Page cache hash table entries: 4096 (order 2, 16k)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.2
Based upon Swansea University Computer Society NET3.039
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
TCP: Hash tables configured (ehash 16384 bhash 16384)
IrDA (tm) Protocols for Linux-2.2 (Dag Brattli)
Starting kswapd v 1.5
SA1100 serial driver version 4.27 with no serial options enabled
ttyS00 at 0xf8010000 (irq = 15) is a SA1100 UART
ttyS01 at 0xf8050000 (irq = 17) is a SA1100 UART
ttyS02 at 0xf8030000 (irq = 16) is a SA1100 UART
Signature is 636f6972 'rioc'
Found custom animation at offset 0x9c388
Tuner: loopback=0, ID=-1
show_message("Hijack v508 by Mark Lord")
empeg display initialised.
empeg dsp audio initialised
empeg dsp mixer initialised
empeg dsp initialised
empeg audio-in initialised, CS4231A revision a0
empeg remote control/panel button initialised.
empeg usb initialised, PDIUSBD12 id 1012
empeg state support initialised 0089/88c1 (save to d0005580).
empeg RDS driver initialised
empeg power-pic driver initialised (first boot)
RAM disk driver initialized:  16 RAM disks of 4096K size
empeg single channel IDE
Probing primary interface...
ide_data_test: wrote 0x0000 read 0x0000
ide_data_test: wrote 0xffff read 0x0000
ide_data_test: wrote 0xaaaa read 0x0000
ide_data_test: wrote 0x5555 read 0x0000
ide_data_test: wrote 0x0000 read 0x0000
ide_data_test: wrote 0xffff read 0x0000
ide_data_test: wrote 0xaaaa read 0x0000
ide_data_test: wrote 0x5555 read 0x0000
ide_data_test: wrote 0x0000 read 0x0000
ide_data_test: wrote 0xffff read 0x0000
ide_data_test: wrote 0xaaaa read 0x0000
ide_data_test: wrote 0x5555 read 0x0000
ide_data_test: wrote 0x0000 read 0x0000
ide_data_test: wrote 0xffff read 0x0000
ide_data_test: wrote 0xaaaa read 0x0000
ide_data_test: wrote 0x5555 read 0x0000
ide_data_test: wrote 0x0000 read 0x0000
ide_data_test: wrote 0xffff read 0x0000
ide_data_test: wrote 0xaaaa read 0x0000
ide_data_test: wrote 0x5555 read 0x0000
ide_data_test: wrote 0x0000 read 0x0000
ide_data_test: wrote 0xffff read 0x0000
ide_data_test: wrote 0xaaaa read 0x0000
ide_data_test: wrote 0x5555 read 0x0000
ide_data_test: wrote 0x0000 read 0x0000
ide_data_test: wrote 0xffff read 0x0000
ide_data_test: wrote 0xaaaa read 0x0000
ide_data_test: wrote 0x5555 read 0x0000
ide_data_test: wrote 0x0000 read 0x0000
ide_data_test: wrote 0xffff read 0x0000
ide_data_test: wrote 0xaaaa read 0x0000
ide_data_test: wrote 0x5555 read 0x0000
ide_data_test: wrote 0x0000 read 0x0000
ide_data_test: wrote 0xffff read 0x0000
ide_data_test: wrote 0xaaaa read 0x0000
ide_data_test: wrote 0x5555 read 0x0000
ide_data_test: wrote 0x0000 read 0x0000
ide_data_test: wrote 0xffff read 0x0000
ide_data_test: wrote 0xaaaa read 0x0000
ide_data_test: wrote 0x5555 read 0x0000
hda: WDC WD5000BEVT-22A0RT0, ATA DISK drive
ide_data_test: wrote 0x0000 read 0x0000
ide_data_test: wrote 0xffff read 0x0000
ide_data_test: wrote 0xaaaa read 0x0000
ide_data_test: wrote 0x5555 read 0x0000
hda: WDC WD5000BEVT-22A0RT0, ATA DISK drive
ide_data_test: wrote 0x0000 read 0x0000
ide_data_test: wrote 0xffff read 0x0000
ide_data_test: wrote 0xaaaa read 0x0000
ide_data_test: wrote 0x5555 read 0x0000
hda: WDC WD5000BEVT-22A0RT0, ATA DISK drive
ide_data_test: wrote 0x0000 read 0x0000
ide_data_test: wrote 0xffff read 0x0000
ide_data_test: wrote 0xaaaa read 0x0000
ide_data_test: wrote 0x5555 read 0x0000
hda: WDC WD5000BEVT-22A0RT0, ATA DISK drive
ide_data_test: wrote 0x0000 read 0x0000
ide_data_test: wrote 0xffff read 0x0000
ide_data_test: wrote 0xaaaa read 0x0000
ide_data_test: wrote 0x5555 read 0x0000
hda: WDC WD5000BEVT-22A0RT0, ATA DISK drive
ide_data_test: wrote 0x0000 read 0x0000
ide_data_test: wrote 0xffff read 0x0000
ide_data_test: wrote 0xaaaa read 0x0000
ide_data_test: wrote 0x5555 read 0x0000
hda: WDC WD5000BEVT-22A0RT0, ATA DISK drive
ide0 at 0x000-0x007,0x038 on irq 6
hda: WDC WD5000BEVT-22A0RT0, 476940MB w/8192kB Cache, CHS=60801/255/63, LBA48
empeg-flash driver initialized
smc chip id/revision 0x3349
smc9194.c:v0.12 03/06/96 by Erik Stahlman ([email protected])

SMC9194: SMC91C94(r:9) at 0x4008000 IRQ:7 INTF:TP MEM:6144b MAC 00:02:d7:28:0f:0
c
Partition check:
 hda: hda1 < hda5 hda6 > hda2 hda3 hda4
RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 320 blocks [1 disk] into ram disk... done.
VFS: Mounted root (ext2 filesystem).
empeg-pump v0.03 (19980601)
Press Ctrl-A to enter pump...VFS: Mounted root (ext2 filesystem) readonly.
change_root: old root has d_count=1
Trying to unmount old root ... okay
Freeing unused kernel memory: 4k initempeg init 0.8
I see this is a developer image!
Mounting proc
Mounting first music partition
Tried to mount /dev/hda4 as reiserfs but got error 19
Mounting second music partition
Tried to mount /dev/hdc4 but got error 6
Error mounting partitions (possibly already mounted)
Remounting first music partition read-only
Remounting second music partition read-only
No secondary hard disk
Press 'q' now to go into development mode. You Have Zero Seconds To ComplyþStart
ing player
Timezone: GB
Dead temp.sensor, status=0x00
Hijack: intercepting config.ini

hijack: removed menu entry: "Serial Port Assignment"
kftpd: listening on port 21
khttpd: listening on port 80
  player.cpp        : 385:empeg-car 2.01 2004/07/06.
! tags.cpp          :  61:Failed to open tags (0xc0041002).
Prolux 4 empeg car - 2.1434 Jul  5 2004
Vcb: 0x4086d000

*************************************************************


It's very repeatable, happens on both 500 GB drives and the 1TB drive. It is directly related to a drive with the SATA to IDE Adpater connected, not cable position sensitive. As I said, it will operate properly with a few .mp3 files, but a larger database (mixed 16.5 GB) it fails.

I have the player on it's own private computer and ethernet switch (the same as I have spent many days/weeks uploading 350GB files on multiple Player Music Databases on). The ethernet is optimized for best transfer rate. The room temperature is 70 Degrees, the drive temperature is monitored (it never exceeded 86 Degrees). The integration platform is the same one I used for the other 350 GB player database loads. Power supply is only marginally warm.


Obviously, the drive has to be rebuilt (Big_Disk_Builder), I did just try to repair the tags and database, not good enough. Rebuilt all three drives many times during the week while troubleshooting the problem.



So... I used a spare WD 250 GB IDE (WD2500BEVE) interface drive in the same system. Same database (16.5 GB - mixed .wav & .mp3), it completed it fine and I'm listening to it play at the moment.


By the way, could a build be prepared that forces a rebuild at the end of the process, almost every player load, doesn't have tags or database files created or they get deleted.



Any ideas?

1) Is there a way to check whether it is an internal thing? Should I try to write a large file by the command prompt and see if it can read back the same file and compare it to either RAM or another file on the disk media (kind of like an old DOS File-Compare but make the file huge)? What's the best way to do this?

2) I don't think it is a latency problem with the Ethernet channel. It's possible that the local bus might become saturated due to disk write delays clogging up the bus.

3) It could be that the SATA to IDE translation may have too much latency and it could be a buffer flow control issue. Are the loads DMA, PIO, or IRQ managed? Can't do much with that unless I want to gather more timing information (set-up/hold timing), with an oscilloscope and logic analyzer. No schematic though, I'd have to reverse engineer the bus from a couple of bus component datasheets.

4) It could be that the rotational latency plus the SATA to IDE translator card processing delays combined may clog or starve the bus. Both 500GB and 1TB Drives use WD IntelliPower Technology. Could this be related to the problem? Does anyone know if there is a way to disable the IntelliPower feature?

The WD2500BEVE is a 5400 RPM Drive and they have always worked for me (lots of 'em). Slower rotational drive, slower (but not processed bus), but, I could be surprised.

I will try a 7200 RPM Disk Drive and see if that works better. Just tried to get one from Best Buy, had them retrieve a WD 320GB from the glass cabinet at $49.95, had it in my hand at the counter, register price $74.95. Had them recheck the price in the glass case, bait-N-switch, placed it in the wrong place on the shelf. It wasn't worth fighting over, so I left it there at the register counter. I'll just buy one on Tuesday from Software and More (by the way, they have been real good to buy from).

5) Plenty of cache on both drives, fast SATA 3 I/F. Shouldn't be the problem. Old drives 8MB, new drives 32MB, it should improve the situation not hurt it.


I would like to split the problem up some so that I can effectively troubleshoot what it going on.


Thanks,

Ross


Edited by wfaulk (21/03/2011 14:39)
Edit Reason: code tags
_________________________
In SI, a little termination and attention to layout goes a long way. In EMC, without SI, you'll spend 80% of the effort on the last 3dB.