Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Rockbox mail archive

Subject: Re: Sansa corrupting OF in the boot partition.

Re: Sansa corrupting OF in the boot partition.

From: Barry Wardell <barry.wardell_at_gmail.com>
Date: Tue, 20 Mar 2007 10:09:29 +0000

I created http://www.rockbox.org/twiki/bin/view/Main/SansaE200FirmwarePartition
so that we can further understand the structure of the firmware
partition.

Looking at your diff, all the changes are in the NVPARAMS section of
the partition. These store information such as whether a database
rebuild needs to be done (that's the first difference between your
files at 7810E0), current played song, etc.

These changes shouldn't be responsible for the checksum failing as
that is done over a different section of the partition. But I guess if
some of the NVPARAMS were off then it could cause the OF to have
problems booting.

My own testing on the CRC issue has found the following:
1) The firmware partition doesn't actually get changed. The changes
must be happening in DRAM.
2) If you add a delay before loading the firmware to DRAM, then the
problem doesn't happen.
3) It only happens if the USB cable is connected
4) UDC_ENDPOINTLISTADDR gets reset to 0 when USB is connected. This
points to the address of the start of the USB data structures.

So, my current theory is that it's a problem with
UDC_ENDPOINTLISTADDR. In fact, the datasheet for the USB controller
specifies that it must point to valid data structures before an attach
event occurs. It's still just a theory that I have yet to confirm, but
I think it is quite likely.

One qustion that arose is that if my theory is correct, then does the
USB controller write directly to DRAM? I haven't figured out the
answer to that question yet.

Barry

On 3/20/07, Paul Louden <paulthenerd_at_gmail.com> wrote:
> And, being stupid, I forgot to attach the important file.
>
>
Received on 2007-03-20


Page was last modified "Jan 10 2012" The Rockbox Crew
aaa