Hello, We have been working a project that utilizes a StrongARM-based Cerfboard from Intrinsyc (SA1110 version of the StrongARM). For those of you not familiar with it, the Cerfboard is a small embedded module that runs Linux (specifically, a distro called I-Linux that Intrinsyc provides). This board has Compact Flash, 10/100 ethernet, and a few other goodies. Anyway...
Recently, we have started using the Compact Flash slot that is available on the board. We noticed that at times, the board would completely freeze when attempting to go through the cardctl insert/mount procedure to gain access to the Compact Flash. We wrote a script that would do the following:
Forever cardctl insert mount /mnt/cf cp file to CF rm file from CF umount /mnt/cf cardctl eject print iteration count
We then let this run forever, watching the output on our serial console. Sometimes, the board will crash after anything between 0 and
40 iterations (random). There is no response from any i/o device (serial console, ethernet, etc). However, upon scoping the SDRAM lines, there is still activity here, albeit much less than before the crash occurs (by about an order of magnitude).Sometimes, the board runs forever just fine...
...HERE IS WHERE THE CRAZINESS PART STARTS
One of our technicians noticed that if the script is started in the FIRST nine minutes after power-up, the script will fail anywhere between 0 and 40 iterations. If we start the script AFTER nine minutes (its not PRECISELY nine minutes, but close), it NEVER EVER FAILS! We have had it run thousands of times without any problems, as long as we wait nine minutes before starting.
Here are the specifics of our setup:
Kernel: 2.4.9-ac10-rmk2-np1-cerf2 Card Services: 3.1.22 CPU: SA1110 rev 8 Distro: I-Linux 4.4 Execution speed: 192 MHz (through PLL)
There are no applications running on this board, other than the script.
mark the address/data bus in general appear much less active. Seems as though prior to nine minutes, there are address/data accesses on the SA1110 busses about once per 1.5 uS or so, in burst-chunks of about 14 at a time, with about 6 uS between burst chunks. After the nine minute mark, the burst pace is about once every 14 uS, still in groups of 14 at a time, with a time-betwee-burst chunk also increased linearly.
Has anyone ever seen anything like this? Any ideas what magic happens at the nine minute mark? We have been eliminating hardware slowly, and are starting to think it is kernel/driver related. As a test, we grabbed an XScale-based Cerfboard running 2.4.18 kernel, and same Card Services. We ran the script on this board and it doesn't exhibit the problem (though the hardware is obviously also different).
If you've read this far, much appreciated. We've been pulling our hair out regarding this one. I don't think Intrinsyic still supports this board, but we're following up with them just in case.
Thanks in advance for any help that can be provided.
Balding, John O.