no byte reply anymore (due to ack and tcflush) -> incredible speedup!
[my-code/arm.git] / betty / fwflash.c
index 7c9551f..85a64fa 100644 (file)
@@ -272,8 +272,11 @@ void flash_chip_erase(u8 bank) {
                else
                        status=B2F;
 
-               if(status&0x80)
+               if(status&0x80) {
+                       /* send an ack */
+                       uart0_send_byte(status);
                        break;
+               }
        }
 }
 
@@ -313,6 +316,9 @@ int flash_write(u32 addr,u16 data) {
 
        u16 check;
 
+       if(data==0xffff)
+               return 0;
+
        *((unsigned volatile short *)addr)=0xa0;
        *((unsigned volatile short *)addr)=data;
        while(1) {
@@ -348,11 +354,9 @@ int receive_data_and_write_to_flash(u32 addr,u32 datalen) {
        ret=0;
        for(i=0;i<datalen/2;i++) {
                byte=uart0_get_byte();
-               uart0_send_byte(byte);
                data=byte;
                cksm+=byte;
                byte=uart0_get_byte();
-               uart0_send_byte(byte);
                cksm+=byte;
                data|=byte<<8;
                if(flash_write(addr,data)<0)