tizen 2.4 release
[kernel/u-boot-tm1.git] / nand_fdl / fdl-2 / src / fdl_common.c
1 #include "fdl_common.h"
2
3 unsigned short fdl_calc_checksum(unsigned char *data, unsigned long len)
4 {
5         unsigned short num = 0;
6         unsigned long chkSum = 0;
7         while(len>1) {
8                 num = (unsigned short)(*data);
9                 data++;
10                 num |= (((unsigned short)(*data))<<8);
11                 data++;
12                 chkSum += (unsigned long)num;
13                 len -= 2;
14         }
15         if(len) {
16                 chkSum += *data;
17         }
18         chkSum = (chkSum >> 16) + (chkSum & 0xffff);
19         chkSum += (chkSum >> 16);
20         return (~chkSum);
21 }
22
23 unsigned char fdl_check_crc(uint8* buf, uint32 size,uint32 checksum)
24 {
25         uint16 crc;
26
27         crc = fdl_calc_checksum(buf,size);
28         printf("fdl_check_crc  calcout = 0x%x,org = 0x%x\n",crc,checksum);
29         return (crc == (uint16)checksum);
30 }