This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: 32 bit flash checksums


On Mon, 2006-01-09 at 17:10 -0800, Adam Yergovich wrote:
> Hello all,
> 
> After a few problems with my client throwing in html code in the email, 
> i've got some additional questions and clarification of the problem.
> 
> I'll preface this by saying i have a port of Redboot for the Cirrus 
> Logic EP93XX family of chips.  While many things are different, with 
> regards to checksumming and the areas of memory i'm looking at there 
> shouldn't be much different.
> 
> I think the place to start with is to explain what i am seeing.  Most of 
> the "Magic numbers" are stored in the FIS Directory partition.  This is 
> not the case though for the Redboot Config partition.  Through some 
> experimentation i've noted that it appears to store the checksum for 
> this partition in the last 4 bytes of the partition, preceded by what 
> looks like an identifier of 0xADDEADED . (So the final 8 bytes are 
> 0xADDEADEDZZZZZZZZ where ZZZZZZZZ coresponds to the magic number).
> 
> The question is how to deal with this checksum in particular.  Is it the 
> same algorithm, and if so, what does it use as its length?  Does it 
> reduce the 0x1000 partition to cut off the last 4 bytes?  Treat them as 
> 0's, 1's?

Have you read the source?  The answers are all there :-)

The fconfig data is represented by a structure:
        struct _config {
            unsigned long len;
            unsigned long key1;
            unsigned char config_data[MAX_CONFIG_DATA-(4*4)];
            unsigned long key2;
            unsigned long cksum;
        };

The checksum is simply the crc32 sum over everything except the checksum
itself:
    crc = cyg_crc32((unsigned char *)conf, sizeof(*conf)-sizeof(conf->cksum));

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------



-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]