[flashrom] [PATCH] Move erase checks out of chip drivers
Carl-Daniel Hailfinger
c-d.hailfinger.devel.2006 at gmx.net
Thu Dec 2 13:46:32 CET 2010
Ping?
On 04.11.2010 05:47, Carl-Daniel Hailfinger wrote:
> Rebased against svn HEAD, no functional changes.
>
> Erase functions are no longer called from chip drivers and thus their
> internal erase verification can be moved to generic code.
> This also makes it easier to skip the verify step if desired and to
> differentiate between failed command submission and failed erase
> verification.
>
> Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>
>
> Index: flashrom-generic_check_erased_range/jedec.c
> ===================================================================
> --- flashrom-generic_check_erased_range/jedec.c (Revision 1224)
> +++ flashrom-generic_check_erased_range/jedec.c (Arbeitskopie)
> @@ -261,10 +261,7 @@
> /* wait for Toggle bit ready */
> toggle_ready_jedec_slow(bios);
>
> - if (check_erased_range(flash, page, pagesize)) {
> - msg_cerr("ERASE FAILED!\n");
> - return -1;
> - }
> + /* FIXME: Check the status register for errors. */
> return 0;
> }
>
> @@ -291,16 +288,12 @@
> /* wait for Toggle bit ready */
> toggle_ready_jedec_slow(bios);
>
> - if (check_erased_range(flash, block, blocksize)) {
> - msg_cerr("ERASE FAILED!\n");
> - return -1;
> - }
> + /* FIXME: Check the status register for errors. */
> return 0;
> }
>
> static int erase_chip_jedec_common(struct flashchip *flash, unsigned int mask)
> {
> - int total_size = flash->total_size * 1024;
> chipaddr bios = flash->virtual_memory;
>
> /* Issue the JEDEC Chip Erase command */
> @@ -320,10 +313,7 @@
>
> toggle_ready_jedec_slow(bios);
>
> - if (check_erased_range(flash, 0, total_size)) {
> - msg_cerr("ERASE FAILED!\n");
> - return -1;
> - }
> + /* FIXME: Check the status register for errors. */
> return 0;
> }
>
> Index: flashrom-generic_check_erased_range/sst49lfxxxc.c
> ===================================================================
> --- flashrom-generic_check_erased_range/sst49lfxxxc.c (Revision 1224)
> +++ flashrom-generic_check_erased_range/sst49lfxxxc.c (Arbeitskopie)
> @@ -69,9 +69,6 @@
>
> status = wait_82802ab(flash);
>
> - if (check_erased_range(flash, address, sector_size)) {
> - msg_cerr("ERASE FAILED!\n");
> - return -1;
> - }
> + /* FIXME: Check the status register for errors. */
> return 0;
> }
> Index: flashrom-generic_check_erased_range/sharplhf00l04.c
> ===================================================================
> --- flashrom-generic_check_erased_range/sharplhf00l04.c (Revision 1224)
> +++ flashrom-generic_check_erased_range/sharplhf00l04.c (Arbeitskopie)
> @@ -50,9 +50,6 @@
> status = wait_82802ab(flash);
> print_status_82802ab(status);
>
> - if (check_erased_range(flash, blockaddr, blocklen)) {
> - msg_cerr("ERASE FAILED!\n");
> - return -1;
> - }
> + /* FIXME: Check the status register for errors. */
> return 0;
> }
> Index: flashrom-generic_check_erased_range/82802ab.c
> ===================================================================
> --- flashrom-generic_check_erased_range/82802ab.c (Revision 1224)
> +++ flashrom-generic_check_erased_range/82802ab.c (Arbeitskopie)
> @@ -136,11 +136,7 @@
> status = wait_82802ab(flash);
> print_status_82802ab(status);
>
> - if (check_erased_range(flash, page, pagesize)) {
> - msg_cerr("ERASE FAILED!\n");
> - return -1;
> - }
> -
> + /* FIXME: Check the status register for errors. */
> return 0;
> }
>
> Index: flashrom-generic_check_erased_range/spi25.c
> ===================================================================
> --- flashrom-generic_check_erased_range/spi25.c (Revision 1224)
> +++ flashrom-generic_check_erased_range/spi25.c (Arbeitskopie)
> @@ -584,10 +584,7 @@
> /* FIXME: We assume spi_read_status_register will never fail. */
> while (spi_read_status_register() & JEDEC_RDSR_BIT_WIP)
> programmer_delay(1000 * 1000);
> - if (check_erased_range(flash, 0, flash->total_size * 1024)) {
> - msg_cerr("ERASE FAILED!\n");
> - return -1;
> - }
> + /* FIXME: Check the status register for errors. */
> return 0;
> }
>
> @@ -623,10 +620,7 @@
> /* FIXME: We assume spi_read_status_register will never fail. */
> while (spi_read_status_register() & JEDEC_RDSR_BIT_WIP)
> programmer_delay(1000 * 1000);
> - if (check_erased_range(flash, 0, flash->total_size * 1024)) {
> - msg_cerr("ERASE FAILED!\n");
> - return -1;
> - }
> + /* FIXME: Check the status register for errors. */
> return 0;
> }
>
> @@ -667,10 +661,7 @@
> */
> while (spi_read_status_register() & JEDEC_RDSR_BIT_WIP)
> programmer_delay(100 * 1000);
> - if (check_erased_range(flash, addr, blocklen)) {
> - msg_cerr("ERASE FAILED!\n");
> - return -1;
> - }
> + /* FIXME: Check the status register for errors. */
> return 0;
> }
>
> @@ -716,10 +707,7 @@
> */
> while (spi_read_status_register() & JEDEC_RDSR_BIT_WIP)
> programmer_delay(100 * 1000);
> - if (check_erased_range(flash, addr, blocklen)) {
> - msg_cerr("ERASE FAILED!\n");
> - return -1;
> - }
> + /* FIXME: Check the status register for errors. */
> return 0;
> }
>
> @@ -763,10 +751,7 @@
> */
> while (spi_read_status_register() & JEDEC_RDSR_BIT_WIP)
> programmer_delay(100 * 1000);
> - if (check_erased_range(flash, addr, blocklen)) {
> - msg_cerr("ERASE FAILED!\n");
> - return -1;
> - }
> + /* FIXME: Check the status register for errors. */
> return 0;
> }
>
> @@ -808,10 +793,7 @@
> */
> while (spi_read_status_register() & JEDEC_RDSR_BIT_WIP)
> programmer_delay(10 * 1000);
> - if (check_erased_range(flash, addr, blocklen)) {
> - msg_cerr("ERASE FAILED!\n");
> - return -1;
> - }
> + /* FIXME: Check the status register for errors. */
> return 0;
> }
>
> Index: flashrom-generic_check_erased_range/sst28sf040.c
> ===================================================================
> --- flashrom-generic_check_erased_range/sst28sf040.c (Revision 1224)
> +++ flashrom-generic_check_erased_range/sst28sf040.c (Arbeitskopie)
> @@ -71,10 +71,7 @@
> /* wait for Toggle bit ready */
> toggle_ready_jedec(bios);
>
> - if (check_erased_range(flash, address, sector_size)) {
> - msg_cerr("ERASE FAILED!\n");
> - return -1;
> - }
> + /* FIXME: Check the status register for errors. */
> return 0;
> }
>
> @@ -113,10 +110,7 @@
> programmer_delay(10);
> toggle_ready_jedec(bios);
>
> - if (check_erased_range(flash, 0, flash->total_size * 1024)) {
> - msg_cerr("ERASE FAILED!\n");
> - return -1;
> - }
> + /* FIXME: Check the status register for errors. */
> return 0;
> }
>
> Index: flashrom-generic_check_erased_range/stm50flw0x0x.c
> ===================================================================
> --- flashrom-generic_check_erased_range/stm50flw0x0x.c (Revision 1224)
> +++ flashrom-generic_check_erased_range/stm50flw0x0x.c (Arbeitskopie)
> @@ -107,11 +107,7 @@
>
> wait_82802ab(flash);
>
> - if (check_erased_range(flash, sector, sectorsize)) {
> - msg_cerr("ERASE FAILED!\n");
> - return -1;
> - }
> -
> + /* FIXME: Check the status register for errors. */
> return 0;
> }
>
> @@ -139,5 +135,6 @@
> }
> }
>
> + /* FIXME: Check the status register for errors. */
> return 0;
> }
> Index: flashrom-generic_check_erased_range/flashrom.c
> ===================================================================
> --- flashrom-generic_check_erased_range/flashrom.c (Revision 1224)
> +++ flashrom-generic_check_erased_range/flashrom.c (Arbeitskopie)
> @@ -1395,6 +1395,10 @@
> ret = erasefn(flash, start, len);
> if (ret)
> return ret;
> + if (check_erased_range(flash, start, len)) {
> + msg_cerr("ERASE FAILED!\n");
> + return -1;
> + }
> /* Erase was successful. Adjust oldcontents. */
> memset(oldcontents, 0xff, len);
> skip = 0;
> Index: flashrom-generic_check_erased_range/m29f400bt.c
> ===================================================================
> --- flashrom-generic_check_erased_range/m29f400bt.c (Revision 1224)
> +++ flashrom-generic_check_erased_range/m29f400bt.c (Arbeitskopie)
> @@ -101,10 +101,7 @@
> programmer_delay(10);
> toggle_ready_jedec(bios);
>
> - if (check_erased_range(flash, 0, flash->total_size * 1024)) {
> - msg_cerr("ERASE FAILED!\n");
> - return -1;
> - }
> + /* FIXME: Check the status register for errors. */
> return 0;
> }
>
> @@ -124,10 +121,7 @@
> programmer_delay(10);
> toggle_ready_jedec(bios);
>
> - if (check_erased_range(flash, start, len)) {
> - msg_cerr("ERASE FAILED!\n");
> - return -1;
> - }
> + /* FIXME: Check the status register for errors. */
> return 0;
> }
>
>
>
>
--
http://www.hailfinger.org/
More information about the flashrom
mailing list