+ for(i=cnt;i<cnt+ret;i++)
+ cksml+=buf[i];
+ len-=ret;
+ cnt+=ret;
+ }
+
+
+ /* check ack */
+ while(1) {
+ ret=read(lpc->sfd,&cksmr,1);
+ if(ret<0) {
+ perror("write to flash: read cksm");
+ return ret;
+ }
+ if(ret==1) break;
+ }
+ if(cksml!=cksmr) {
+ printf("FATAL: wrong checksum or failure in flash write!\n");
+ if(cksml+1==cksmr)
+ printf(" -> most probably due to flash write!\n");
+ else
+ printf(" -> most probably failure in transfer!\n");
+ printf(" addr:0x%08x l:%02x r:%02x\n",addr,cksml,cksmr);