1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * Copyright (c) 2013 Google, Inc 4 */ 5 6 #ifdef USE_HOSTCC 7 #include <arpa/inet.h> 8 #else 9 #include <common.h> 10 #endif 11 #include <u-boot/crc.h> 12 13 #define POLY (0x1070U << 3) 14 _crc8(unsigned short data)15static unsigned char _crc8(unsigned short data) 16 { 17 int i; 18 19 for (i = 0; i < 8; i++) { 20 if (data & 0x8000) 21 data = data ^ POLY; 22 data = data << 1; 23 } 24 25 return (unsigned char)(data >> 8); 26 } 27 crc8(unsigned int crc,const unsigned char * vptr,int len)28unsigned int crc8(unsigned int crc, const unsigned char *vptr, int len) 29 { 30 int i; 31 32 for (i = 0; i < len; i++) 33 crc = _crc8((crc ^ vptr[i]) << 8); 34 35 return crc; 36 } 37