When working with some flash chips using the Bus Pirate programmer, the
use of the Bus Pirate's on-board pull-up resistors is sometimes
necessary.

Use of said pull-up resistors requires the user to apply a voltage to
the VPU pin of the Bus Pirate, and then command it to use them.

Included is a patch to initialize the Bus Pirate's pull-up resistors
with a 'pullups=1' at the command line:

e.g. flashrom -p buspirate_spi:dev=/dev/buspirate,pullups=1

Here is a link to information pertaining to what this patch does.
http://dangerousprototypes.com/docs/SPI_(binary)#0100wxyz_-_Configure_peripherals_w.3Dpower.2C_x.3Dpull-ups.2C_y.3DAUX.2C_z.3DCS

Currently, flashrom sends 0x4b, which does not set the "pull-ups" bit
high. Optionally sending 0x4f instead will enable them.


--- trunk/buspirate_spi.c       2013-01-01 04:03:42.507602657 -0500
+++ src/flashrom/buspirate_spi.c        2013-01-01 04:02:25.847578106
-0500 @@ -204,11 +204,13 @@
        char *dev = NULL;
        char *speed = NULL;
        char *tmp;
+       char *pullups = NULL;
        unsigned int fw_version_major = 0;
        unsigned int fw_version_minor = 0;
        int spispeed = 0x7;
        int ret = 0;
        int i;
+       int ipullup = 0;
 
        dev = extract_programmer_param("dev");
        if (dev && !strlen(dev)) {
@@ -220,6 +222,16 @@
                return 1;
        }
 
+       /* enable pull-up resistors? */
+       pullups = extract_programmer_param("pullups");
+       if(pullups) {
+               ipullup = atoi(pullups);
+
+               if(ipullup == 1) {
+                       msg_pinfo("Enabled Bus Pirate pull-up
resistors.\n");
+               }
+       }
+
        speed = extract_programmer_param("spispeed");
        if (speed) {
                for (i = 0; spispeeds[i].name; i++)
@@ -395,7 +407,7 @@
        }
 
        /* Initial setup (SPI peripherals config): Enable power, CS
high, AUX */
-       bp_commbuf[0] = 0x40 | 0xb;
+       bp_commbuf[0] = 0x40 | ((ipullup == 1) ? 0xf : 0xb);
        ret = buspirate_sendrecv(bp_commbuf, 1, 1);
        if (ret)
                return 1;


Happy New Year!
Signed-off-by: Brian Salcedo <[email protected]>

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

Reply via email to