[flashrom] [RFC] Kill --force

Magnus Alm magnus.alm at gmail.com
Mon Apr 12 10:56:00 CEST 2010


Thanks for the try, but the laptop shut it self down while I was
asleep. And it's a brick now.
Shit happens, first time I managed to kill a main-board in those 17
years I've worked with computers.

A patch that changed this output would have been better if it was
already in place when I tested it:

===
This flash part has status UNTESTED for operations: PROBE READ ERASE WRITE
Please email a report to flashrom at flashrom.org if any of the above operations
work correctly for you with this flash part. Please include the flashrom
output with the additional -V option for all operations you tested (-V, -rV,
-wV, -EV) , and mention which mainboard or programmer you tested.
Thanks for your help!
+WARNING! DON'T DO A "flashrom -EV" ON A LAPTOP THO, SINCE IT MIGHT
TURN IT INTO A BRICK!
===


Cheers

2010/4/12 Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>:
> --force may have been a good idea back when only developers were using
> flashrom, but over the last few months I've seen too many people who
> incorrectly believed that --force would solve anything.
>
> One of the problems is that --force has multiple meanings:
> - Force chip read by faking probe success.
> - Force writing even if cbtable tells us that this is the wrong image
> for this board.
> - Force chip access even if the chip is bigger than max decode size for
> the flash bus.
> - Force erase even if erase is known bad.
> - Force write even if write is known bad.
> We should kill --force and replace it with explicit --force-erase or
> --force-cbtable-mismatch or similar stuff, maybe -p internal:ignore_cbtable.
>
> First step:
> - Remove any suggestions to use --force for probe/read from flashrom output.
> - Don't talk about "success" or "Found chip" if the chip is forced.
>
> Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>
>
> Index: flashrom-forced_stupid/cli_classic.c
> ===================================================================
> --- flashrom-forced_stupid/cli_classic.c        (Revision 992)
> +++ flashrom-forced_stupid/cli_classic.c        (Arbeitskopie)
> @@ -303,6 +303,18 @@
>                cli_classic_usage(argv[0]);
>        }
>
> +       if (chip_to_probe) {
> +               for (flash = flashchips; flash && flash->name; flash++)
> +                       if (!strcmp(flash->name, chip_to_probe))
> +                               break;
> +               if (!flash || !flash->name) {
> +                       fprintf(stderr, "Error: Unknown chip specified.\n");
> +                       exit(1);
> +               }
> +               /* Clean up after the check. */
> +               flash = NULL;
> +       }
> +
>        if (programmer_init()) {
>                fprintf(stderr, "Error: Programmer initialization failed.\n");
>                exit(1);
> @@ -329,14 +341,10 @@
>        } else if (!flashes[0]) {
>                printf("No EEPROM/flash device found.\n");
>                if (!force || !chip_to_probe) {
> -                       printf("If you know which flash chip you have, and if this version of flashrom\n");
> -                       printf("supports a similar flash chip, you can try to force read your chip. Run:\n");
> -                       printf("flashrom -f -r -c similar_supported_flash_chip filename\n");
> -                       printf("\n");
> -                       printf("Note: flashrom can never write when the flash chip isn't found automatically.\n");
> +                       printf("Note: flashrom can never write if the flash chip isn't found automatically.\n");
>                }
>                if (force && read_it && chip_to_probe) {
> -                       printf("Force read (-f -r -c) requested, forcing chip probe success:\n");
> +                       printf("Force read (-f -r -c) requested, pretending the chip is there:\n");
>                        flashes[0] = probe_flash(flashchips, 1);
>                        if (!flashes[0]) {
>                                printf("flashrom does not support a flash chip named '%s'.\n", chip_to_probe);
> Index: flashrom-forced_stupid/flashrom.c
> ===================================================================
> --- flashrom-forced_stupid/flashrom.c   (Revision 992)
> +++ flashrom-forced_stupid/flashrom.c   (Arbeitskopie)
> @@ -924,7 +924,8 @@
>        if (!flash || !flash->name)
>                return NULL;
>
> -       printf("Found chip \"%s %s\" (%d KB, %s) at physical address 0x%lx.\n",
> +       printf("%s chip \"%s %s\" (%d KB, %s) at physical address 0x%lx.\n",
> +              force ? "Assuming" : "Found",
>               flash->vendor, flash->name, flash->total_size,
>               flashbuses_to_text(flash->bustype), base);
>
>
>
> --
> http://www.hailfinger.org/
>
>
> _______________________________________________
> flashrom mailing list
> flashrom at flashrom.org
> http://www.flashrom.org/mailman/listinfo/flashrom
>




More information about the flashrom mailing list