Hi Helge,

I'm very sorry, it seems that the patch repeatedly slipped through the
cracks because patchwork didn't pick it up (application/octet-stream for
the attachment may have been the reason, but that is fixed now).

On 06.08.2010 15:28, Wagner, Helge (GE Intelligent Platforms) wrote:
> I have tested both SST 25VF032B and SST 25VF064C on a QM57 (IbexPeak)
> system and found that the reprogramming of these chips is very slow.
>
> So i have changed the programming engine for the 25VF064C from
> "spi_chip_write_1" to "spi_chip_write_256".
> I have tested the 25VF064C with the new engine and it works fine.
>
> For the 25VF032B i have changed the programming engine from
> "spi_chip_write_1" to "spi_aai_write".
> I have tested this engine, too, and found it working (speedup was from
> 228 to 113 seconds).
>
> While testing i found that some commands needed by some of the
> algorithms are not in the OPCODE table. So i have implemented the
> on-the-fly reprogramming of the OPCODE table (in the ICH engine).
>
> Signed-off-by: Helge Wagner <[email protected]>
>
> Speedup for new 25VF032B programming algorithm: from 3091 [sic!] to 123
> seconds
>   

This patch is a huge step forward for many Intel chipsets.
Thank you!


> diff -urN flashrom-0.9.2/ichspi.c flashrom/ichspi.c
> --- flashrom-0.9.2/ichspi.c   2010-07-28 00:41:39.000000000 +0200
> +++ flashrom/ichspi.c 2010-08-06 14:46:47.000000000 +0200
> @@ -708,11 +777,11 @@
>       /* find cmd in opcodes-table */
>       opcode_index = find_opcode(curopcodes, cmd);
>       if (opcode_index == -1) {
> -             /* FIXME: Reprogram opcodes if possible. Autodetect type of
> -              * opcode by checking readcnt/writecnt.
> -              */
> -             msg_pdbg("Invalid OPCODE 0x%02x\n", cmd);
> -             return SPI_INVALID_OPCODE;
> +             opcode_index = reprogram_opcode_on_the_fly(cmd, writecnt, 
> readcnt);
>   

This line should be conditional on !ichspi_lock.
I have changed that in the commit.


> +             if (opcode_index == -1) {
> +                     msg_pdbg("Invalid OPCODE 0x%02x\n", cmd);
> +                     return SPI_INVALID_OPCODE;
> +             }
>       }
>  
>       opcode = &(curopcodes->opcode[opcode_index]);
>   

Acked-by: Carl-Daniel Hailfinger <[email protected]>

ICH dynamic opcode reprogramming patch committed in r1193.
AAI write for SST25VF032B and page write for SST25VF064C committed in r1194.

Regards,
Carl-Daniel

-- 
http://www.hailfinger.org/


_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom

Reply via email to