comparison loadtools/fldevs.c @ 983:0407d14fb854

PL-J flash PPB ops: rework for full verification of lock state
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 02 Dec 2023 08:22:00 +0000
parents 0a4d19aab608
children c4c400c1b10c
comparison
equal deleted inserted replaced
982:1c5b485f10ba 983:0407d14fb854
8 extern struct flash_cmdset flash_cmdset_amd; 8 extern struct flash_cmdset flash_cmdset_amd;
9 extern struct flash_cmdset flash_cmdset_intel; 9 extern struct flash_cmdset flash_cmdset_intel;
10 extern struct flash_cmdset flash_cmdset_intel_w30; 10 extern struct flash_cmdset flash_cmdset_intel_w30;
11 11
12 extern int plj_ppb_program_one(); 12 extern int plj_ppb_program_one();
13 extern int plj_ppb_program_all_single(); 13 extern int plj_ppb_program_all();
14 extern int plj_ppb_program_all_dualbank();
15 extern int plj_ppb_erase_all_single(); 14 extern int plj_ppb_erase_all_single();
16 extern int plj_ppb_erase_all_dualbank(); 15 extern int plj_ppb_erase_all_dualbank();
17 16
18 /* flash bank geometries */ 17 /* flash bank geometries */
19 18
439 {0x10000, 3, 0, 0, 0}, 438 {0x10000, 3, 0, 0, 0},
440 {0x2000, 8, 0, 0, 1}}, 439 {0x2000, 8, 0, 0, 1}},
441 .have_status_word_3 = 1, 440 .have_status_word_3 = 1,
442 .have_mode_lock_bits = 1, 441 .have_mode_lock_bits = 1,
443 .ppb_program_one = plj_ppb_program_one, 442 .ppb_program_one = plj_ppb_program_one,
444 .ppb_program_all = plj_ppb_program_all_single, 443 .ppb_program_all = plj_ppb_program_all,
445 .ppb_erase_all = plj_ppb_erase_all_single, 444 .ppb_erase_all = plj_ppb_erase_all_single,
446 }; 445 };
447 446
448 struct flash_device flashdev_PL064J = { 447 struct flash_device flashdev_PL064J = {
449 .name = "Spansion S29PL064J", 448 .name = "Spansion S29PL064J",
492 {0x40000, 7, 1, 0, 1}, 491 {0x40000, 7, 1, 0, 1},
493 {0x40000, 24, 1, 1, 1}}, 492 {0x40000, 24, 1, 1, 1}},
494 .have_status_word_3 = 1, 493 .have_status_word_3 = 1,
495 .have_mode_lock_bits = 1, 494 .have_mode_lock_bits = 1,
496 .ppb_program_one = plj_ppb_program_one, 495 .ppb_program_one = plj_ppb_program_one,
497 .ppb_program_all = plj_ppb_program_all_dualbank, 496 .ppb_program_all = plj_ppb_program_all,
498 .ppb_erase_all = plj_ppb_erase_all_dualbank, 497 .ppb_erase_all = plj_ppb_erase_all_dualbank,
499 }; 498 };
500 499
501 static struct amd_lock_info PL129J_lock_info_1 = { 500 static struct amd_lock_info PL129J_lock_info_1 = {
502 .ngroups = 4, 501 .ngroups = 4,
505 {0x40000, 7, 1, 1, 0}, 504 {0x40000, 7, 1, 1, 0},
506 {0x10000, 3, 0, 0, 0}, 505 {0x10000, 3, 0, 0, 0},
507 {0x2000, 8, 0, 0, 1}}, 506 {0x2000, 8, 0, 0, 1}},
508 .have_status_word_3 = 1, 507 .have_status_word_3 = 1,
509 .ppb_program_one = plj_ppb_program_one, 508 .ppb_program_one = plj_ppb_program_one,
510 .ppb_program_all = plj_ppb_program_all_dualbank, 509 .ppb_program_all = plj_ppb_program_all,
511 .ppb_erase_all = plj_ppb_erase_all_dualbank, 510 .ppb_erase_all = plj_ppb_erase_all_dualbank,
512 }; 511 };
513 512
514 struct flash_device flashdev_PL129J = { 513 struct flash_device flashdev_PL129J = {
515 .name = "Spansion S29PL129J", 514 .name = "Spansion S29PL129J",
699 {0x40000, 24, 1, 1, 1}}, 698 {0x40000, 24, 1, 1, 1}},
700 .have_status_word_3 = 1, 699 .have_status_word_3 = 1,
701 .have_status_word_7 = 1, 700 .have_status_word_7 = 1,
702 .have_mode_lock_bits = 1, 701 .have_mode_lock_bits = 1,
703 .ppb_program_one = plj_ppb_program_one, 702 .ppb_program_one = plj_ppb_program_one,
704 .ppb_program_all = plj_ppb_program_all_dualbank, 703 .ppb_program_all = plj_ppb_program_all,
705 .ppb_erase_all = plj_ppb_erase_all_dualbank, 704 .ppb_erase_all = plj_ppb_erase_all_dualbank,
706 }; 705 };
707 706
708 static struct amd_lock_info K5L29_lock_info_1 = { 707 static struct amd_lock_info K5L29_lock_info_1 = {
709 .ngroups = 4, 708 .ngroups = 4,
713 {0x10000, 3, 0, 0, 0}, 712 {0x10000, 3, 0, 0, 0},
714 {0x2000, 8, 0, 0, 1}}, 713 {0x2000, 8, 0, 0, 1}},
715 .have_status_word_3 = 1, 714 .have_status_word_3 = 1,
716 .have_status_word_7 = 1, 715 .have_status_word_7 = 1,
717 .ppb_program_one = plj_ppb_program_one, 716 .ppb_program_one = plj_ppb_program_one,
718 .ppb_program_all = plj_ppb_program_all_dualbank, 717 .ppb_program_all = plj_ppb_program_all,
719 .ppb_erase_all = plj_ppb_erase_all_dualbank, 718 .ppb_erase_all = plj_ppb_erase_all_dualbank,
720 }; 719 };
721 720
722 struct flash_device flashdev_K5L29xx_A = { 721 struct flash_device flashdev_K5L29xx_A = {
723 .name = "Samsung K5L29xx_A", 722 .name = "Samsung K5L29xx_A",