Advertisement
Guest User

Untitled

a guest
Jan 25th, 2013
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. while (blocknum * erase_sz < fw->size){
  2. block_start = blocknum * erase_sz;
  3. HM2_PRINT("block_start %i blocknum %i erase_sz %i\n", block_start, blocknum, erase_sz);
  4. for (i = 0; i < erase_sz && fw->data[block_start + i] == 0 ; i++){ }
  5. if (i < erase_sz){ // found a non-zero byte
  6. flash_start();
  7. sslbp_write_long(LBPFLASHOFFSETLOC, block_start);
  8. //sslbp_write_byte(LBPFLASHCOMMITLOC, FLASHERASE_CMD);
  9. sslbp_write_byte(LBPFLASHCOMMITLOC, 0);
  10. if (sslbp_read_cookie() != LBPCOOKIE){
  11. HM2_ERR("Synch failed during block erase: aborting\n");
  12. goto fail0;
  13. }
  14. flash_stop();
  15. HM2_PRINT("Erased block %i\n", blocknum);
  16. flash_start();
  17. for (i = 0; i < erase_sz ; i += write_sz){
  18. sslbp_write_long(LBPFLASHOFFSETLOC, block_start + i);
  19. for (j = 0 ; j < write_sz ; j += 8){
  20. u32 data0, data1;
  21. memcpy(&data0, &(fw->data[block_start + i + j]), 4);
  22. memcpy(&data1, &(fw->data[block_start + i + j + 4]), 4);
  23. sslbp_write_double(j, data0, data1);
  24. }
  25. //sslbp_write_byte(LBPFLASHCOMMITLOC, FLASHWRITE_CMD);
  26. sslbp_write_byte(LBPFLASHCOMMITLOC, 0);
  27. if (sslbp_read_cookie() != LBPCOOKIE){
  28. HM2_ERR("Synch failed during block write: aborting\n");
  29. goto fail0;
  30. }
  31. }
  32. flash_stop();
  33. HM2_PRINT("Wrote block %i\n", blocknum);
  34. }
  35. else // Looks like an all-zeros block
  36. {
  37. HM2_PRINT("Skipped Block %i\n", blocknum);
  38. }
  39. blocknum++;
  40. }
  41.  
  42.  
  43.  
  44. Jan 25 20:12:54 DN2800 kernel: [ 433.452924] hm2/hm2_5i25.0: block_start 2048 blocknum 1 erase_sz 2048
  45. Jan 25 20:12:54 DN2800 kernel: [ 433.452941] hm2/hm2_5i25.0: Skipped Block 1
  46. Jan 25 20:12:54 DN2800 kernel: [ 433.452947] hm2/hm2_5i25.0: block_start 4096 blocknum 2 erase_sz 2048
  47. Jan 25 20:12:54 DN2800 kernel: [ 433.452963] hm2/hm2_5i25.0: Skipped Block 2
  48. Jan 25 20:12:54 DN2800 kernel: [ 433.452969] hm2/hm2_5i25.0: block_start 6144 blocknum 3 erase_sz 2048
  49. Jan 25 20:12:54 DN2800 kernel: [ 433.452985] hm2/hm2_5i25.0: Skipped Block 3
  50. Jan 25 20:12:54 DN2800 kernel: [ 433.452991] hm2/hm2_5i25.0: block_start 8192 blocknum 4 erase_sz 2048
  51. Jan 25 20:12:54 DN2800 kernel: [ 433.455453] hm2/hm2_5i25.0: Erased block 4
  52. Jan 25 20:12:54 DN2800 kernel: [ 433.765867] hm2/hm2_5i25.0: Wrote block 4
  53. Jan 25 20:12:54 DN2800 kernel: [ 433.765874] hm2/hm2_5i25.0: block_start 2048 blocknum 5 erase_sz 2048
  54. Jan 25 20:12:54 DN2800 kernel: [ 433.765890] hm2/hm2_5i25.0: Skipped Block 5
  55. 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