Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- while (blocknum * erase_sz < fw->size){
- block_start = blocknum * erase_sz;
- HM2_PRINT("block_start %i blocknum %i erase_sz %i\n", block_start, blocknum, erase_sz);
- for (i = 0; i < erase_sz && fw->data[block_start + i] == 0 ; i++){ }
- if (i < erase_sz){ // found a non-zero byte
- flash_start();
- sslbp_write_long(LBPFLASHOFFSETLOC, block_start);
- //sslbp_write_byte(LBPFLASHCOMMITLOC, FLASHERASE_CMD);
- sslbp_write_byte(LBPFLASHCOMMITLOC, 0);
- if (sslbp_read_cookie() != LBPCOOKIE){
- HM2_ERR("Synch failed during block erase: aborting\n");
- goto fail0;
- }
- flash_stop();
- HM2_PRINT("Erased block %i\n", blocknum);
- flash_start();
- for (i = 0; i < erase_sz ; i += write_sz){
- sslbp_write_long(LBPFLASHOFFSETLOC, block_start + i);
- for (j = 0 ; j < write_sz ; j += 8){
- u32 data0, data1;
- memcpy(&data0, &(fw->data[block_start + i + j]), 4);
- memcpy(&data1, &(fw->data[block_start + i + j + 4]), 4);
- sslbp_write_double(j, data0, data1);
- }
- //sslbp_write_byte(LBPFLASHCOMMITLOC, FLASHWRITE_CMD);
- sslbp_write_byte(LBPFLASHCOMMITLOC, 0);
- if (sslbp_read_cookie() != LBPCOOKIE){
- HM2_ERR("Synch failed during block write: aborting\n");
- goto fail0;
- }
- }
- flash_stop();
- HM2_PRINT("Wrote block %i\n", blocknum);
- }
- else // Looks like an all-zeros block
- {
- HM2_PRINT("Skipped Block %i\n", blocknum);
- }
- blocknum++;
- }
- Jan 25 20:12:54 DN2800 kernel: [ 433.452924] hm2/hm2_5i25.0: block_start 2048 blocknum 1 erase_sz 2048
- Jan 25 20:12:54 DN2800 kernel: [ 433.452941] hm2/hm2_5i25.0: Skipped Block 1
- Jan 25 20:12:54 DN2800 kernel: [ 433.452947] hm2/hm2_5i25.0: block_start 4096 blocknum 2 erase_sz 2048
- Jan 25 20:12:54 DN2800 kernel: [ 433.452963] hm2/hm2_5i25.0: Skipped Block 2
- Jan 25 20:12:54 DN2800 kernel: [ 433.452969] hm2/hm2_5i25.0: block_start 6144 blocknum 3 erase_sz 2048
- Jan 25 20:12:54 DN2800 kernel: [ 433.452985] hm2/hm2_5i25.0: Skipped Block 3
- Jan 25 20:12:54 DN2800 kernel: [ 433.452991] hm2/hm2_5i25.0: block_start 8192 blocknum 4 erase_sz 2048
- Jan 25 20:12:54 DN2800 kernel: [ 433.455453] hm2/hm2_5i25.0: Erased block 4
- Jan 25 20:12:54 DN2800 kernel: [ 433.765867] hm2/hm2_5i25.0: Wrote block 4
- Jan 25 20:12:54 DN2800 kernel: [ 433.765874] hm2/hm2_5i25.0: block_start 2048 blocknum 5 erase_sz 2048
- Jan 25 20:12:54 DN2800 kernel: [ 433.765890] hm2/hm2_5i25.0: Skipped Block 5
- Jan 25 20:12:54 DN2800 kernel: [ 433.765896] hm2/hm2_5i25.0: block_start 4096 blocknum 6 erase_sz 2048
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement