Edward O'Callaghan has posted comments on this change. ( https://review.coreboot.org/c/flashrom/+/40325 )
Change subject: Add writeprotect support ......................................................................
Patch Set 6:
(1 comment)
Patch Set 6:
Patch Set 6:
Did somebody look into Hatim's patches [1]? I didn't but feel like we owe them some attention. They cover more than just write protection. I fear, if we don't look into them now, we never will.
[1] Somewhere amidst https://patchwork.coreboot.org/project/flashrom/list/
I looked into some of them way back when they were first written, but wasn't doing much work with flashrom at the time so I didn't get involved much. IIRC the only issue I had was that some patches were too generalized, i.e. they made assumptions that were true for some chips but not all. Some large Spansion S25FS and FL chips were particularly odd, and there were cases where "don't care" block protect bits could impact generic methods unexpectedly.
Still, he did a lot of good work and it may be useful to revisit those patches to see if we can salvage some of them. And as you mention they cover more than write protection, there might be some OTP-related patches we can use.
After looking at them for a bit I think if we can first work out how to integrate this relatively self-contained support that actually working in the field we can massage forwards into the more generalised version on the list. Otherwise we are forever stuck between a working self-contained abeit not ideal support or a idealised support that isn't completed yet. Since there is a reasonable amount of work to fully get to the end of the road there we need to lay some ground work down.
https://review.coreboot.org/c/flashrom/+/40325/6/cli_classic.c File cli_classic.c:
https://review.coreboot.org/c/flashrom/+/40325/6/cli_classic.c@718 PS6, Line 718: start = strtoul(argv[optind], &endptr, 0); : if (errno == ERANGE || errno == EINVAL || *endptr != '\0') { : msg_gerr("Error: value "%s" invalid\n", argv[optind]); : ret = 1; : goto out_shutdown; : } : : len = strtoul(argv[optind + 1], &endptr, 0); : if (errno == ERANGE || errno == EINVAL || *endptr != '\0') { : msg_gerr("Error: value "%s" invalid\n", argv[optind + 1]);
- Beyond the technical I would just like to state my position while we are upstreaming this stuff fr […]
I purpose the following downstream:
https://chromium-review.googlesource.com/c/chromiumos/third_party/flashrom/+...