[flashrom] Add PICkit2 as an SPI programmer

Justin Chevrier jchevrier at gmail.com
Sat Feb 14 23:39:25 CET 2015


The patch as committed works fine here (only tested read). In
addition, I tried other voltage values (eg. 2.9V, 3.3V, 3.1V) beyond
the 3 currently supported and the hardware happily sets those voltages
as well.

Thanks again,

Justin

On Sun, Feb 8, 2015 at 6:23 PM, Justin Chevrier <jchevrier at gmail.com> wrote:
> Hey Stefan,
>
> Apologies for the late response.
>
> voltage=0V along with the 3 voltage levels was basically just a matter
> of doing the same thing as the Dediprog code. The 3 voltage levels in
> particular made sense as I assumed that covered all current SPI chips.
> I'm not sure what the hardware will do if other values are chosen,
> although you've piqued my interest. If someone else doesn't beat me to
> it, I'll try out the committed (thanks btw) version of the patch and
> attempt setting other voltages.
>
> Justin
>
> On Sat, Jan 31, 2015 at 9:56 PM, Stefan Tauner
> <stefan.tauner at alumni.tuwien.ac.at> wrote:
>> On Fri, 26 Dec 2014 20:53:47 -0500
>> Justin Chevrier <jchevrier at gmail.com> wrote:
>>
>>> Hi Stefan,
>>>
>>> It seems you're correct. Signed off is below.
>>>
>>> Signed-off-by: Justin Chevrier <jchevrier at gmail.com>
>>>
>>
>> Does the option to set voltage=0V really make sense? But since this is
>> even possible... I would rather set it to 0V at shutdown. If that turns
>> off the drivers completely it might be very useful while doing
>> in-circuit programming because the programmer could remain attached
>> even when the target is running.
>>
>> Why do we restrict the levels to 3 values although the API seems to
>> allow to transmit a much finer resolution? What does the hardware
>> actually do with these values?
>>
>> --
>> Kind regards/Mit freundlichen Grüßen, Stefan Tauner
-------------- next part --------------
flashrom v0.9.8-rc1-r1883 on Linux 3.10.17-gentoo (x86_64)
flashrom is free software, get the source code at http://www.flashrom.org

flashrom was built with libpci 3.2.0, GCC 4.7.3, little endian
Command line (7 args): ./flashrom --programmer pickit2_spi -c MX25L6406E/MX25L6436E -r output.bin -V
Calibrating delay loop... OS timer resolution is 1 usecs, 2656M loops per second, 10 myus = 10 us, 100 myus = 100 us, 1000 myus = 1001 us, 10000 myus = 10005 us, 4 myus = 4 us, OK.
Initializing pickit2_spi programmer
Found USB device (04d8:0033).
PICkit2 Firmware Version: 2.32
SPI speed is 1MHz
Setting voltage to 3500 mV.
Setting SPI voltage to 3.500 V
The following protocols are supported: SPI.
Probing for Macronix MX25L6406E/MX25L6436E, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017
Found Macronix flash chip "MX25L6406E/MX25L6436E" (8192 kB, SPI) on pickit2_spi.
Chip status register is 0x00.
Chip status register: Status Register Write Disable (SRWD, SRP, ...) is not set
Chip status register: Bit 6 is not set
Chip status register: Block Protect 3 (BP3) is not set
Chip status register: Block Protect 2 (BP2) is not set
Chip status register: Block Protect 1 (BP1) is not set
Chip status register: Block Protect 0 (BP0) is not set
Chip status register: Write Enable Latch (WEL) is not set
Chip status register: Write In Progress (WIP/BUSY) is not set
This chip may contain one-time programmable memory. flashrom cannot read
and may never be able to write it, hence it may not be able to completely
clone the contents of this chip (see man page for details).
Reading flash... done.


More information about the flashrom mailing list