cksm implemented (still basic flash access not working!)
[my-code/arm.git] / betty / fwflash.c
index c4a2155..2704fd5 100644 (file)
@@ -295,6 +295,8 @@ void receive_data_and_write_to_flash(u32 addr,u32 datalen) {
        u8 bank;
        u32 i;
        u16 data;
+       u8 byte;
+       u8 cksm;
 
        /* which bank to program */
        if(addr<0x82000000)
@@ -306,9 +308,14 @@ void receive_data_and_write_to_flash(u32 addr,u32 datalen) {
        unlock_bypass(bank);
 
        /* receive and write data */
+       cksm=0;
        for(i=0;i<datalen/2;i++) {
-               data=uart0_get_byte();
-               data=uart0_get_byte()<<8;
+               byte=uart0_get_byte();
+               data=byte;
+               cksm+=byte;
+               byte=uart0_get_byte();
+               cksm+=byte;
+               data|=byte<<8;
                *((unsigned volatile short *)addr)=0xa0;
                *((unsigned volatile short *)addr)=data;
                addr+=2;
@@ -316,6 +323,9 @@ void receive_data_and_write_to_flash(u32 addr,u32 datalen) {
 
        /* relock bypass */
        unlock_bypass_reset(bank);
+
+       /* send an ack */
+       uart0_send_byte(cksm);
 }
 
 /*