We are using an AT91SAM9G45 processor in one of our products. We have a lot of problems with this product being bricked, which we can fix pretty easily in house by disconnecting the backup battery. This seems to be a known issue on said processor.
Now we have started to research this problem and we have found a way to reproduce something that looks like the same behaviour by switching the unit off while still in the AT91Bootstrap phase (say 1 out of 3 reboots) and to a lesser extent while booted further than AT91Bootstrap (say 1 out of 100 times). Also we noticed that the problem does not occur with the older version of the bootloader, 1.16 (the version showing this problem is 3.8.7). Some of the differences we found between these versions are:
The old version leaves the internal RC running even though it switches to the crystal oscillator as slow clock
The old version does not enable external reset, which the new version does.
Seems unrelated, but the old version does not enable the PIT timer
So far we tried reproducing the issue under the following conditions:
Leaving the internal RC running: improves the rate of bricked units from 1 out of 3 into about 1 out of 5, not such a huge improvement
Leaving the external reset disabled: improves the rate of bricked units from 1 out of 3 into about 1 out of 25, a significant improvement but still not near as good as the old AT91bootstrap version
A combination of both aforementioned changes: rate of bricked units remains at 1 out of 3, very strange.
Enabling the internal RC and leaving the external oscillator disabled: rate of bricked units improves to 1 out of 1150, a immense improvement, but we are reluctant to actually use this as we want to use the RTC if possible. Also, the problem still isn't solved completely.
We introduced the new bootstrap version to our products to enable ECC, but so far it seems to have caused more issues than it has solved. Is there a known issue with version 3.8.7 that we need to know about? If so, which version or patch might fix this? Could anybody point me into the right direction?
Hi,
We are using an AT91SAM9G45 processor in one of our products. We have a lot of problems with this product being bricked, which we can fix pretty easily in house by disconnecting the backup battery. This seems to be a known issue on said processor.
Now we have started to research this problem and we have found a way to reproduce something that looks like the same behaviour by switching the unit off while still in the AT91Bootstrap phase (say 1 out of 3 reboots) and to a lesser extent while booted further than AT91Bootstrap (say 1 out of 100 times). Also we noticed that the problem does not occur with the older version of the bootloader, 1.16 (the version showing this problem is 3.8.7). Some of the differences we found between these versions are:
The old version leaves the internal RC running even though it switches to the crystal oscillator as slow clock
The old version does not enable external reset, which the new version does.
Seems unrelated, but the old version does not enable the PIT timer
Leaving the internal RC running: improves the rate of bricked units from 1 out of 3 into about 1 out of 5, not such a huge improvement
Leaving the external reset disabled: improves the rate of bricked units from 1 out of 3 into about 1 out of 25, a significant improvement but still not near as good as the old AT91bootstrap version
A combination of both aforementioned changes: rate of bricked units remains at 1 out of 3, very strange.
Enabling the internal RC and leaving the external oscillator disabled: rate of bricked units improves to 1 out of 1150, a immense improvement, but we are reluctant to actually use this as we want to use the RTC if possible. Also, the problem still isn't solved completely.
We introduced the new bootstrap version to our products to enable ECC, but so far it seems to have caused more issues than it has solved. Is there a known issue with version 3.8.7 that we need to know about? If so, which version or patch might fix this? Could anybody point me into the right direction?
Thanks!