On 19.01.2010 11:48, Stefan Reinauer wrote:
> On 1/19/10 4:01 AM, Carl-Daniel Hailfinger wrote:
>   
>> Dediprog SF100 support.  
>>     
>
> MacPro:flashrom stepan$ ./flashrom -p dediprog
> flashrom v0.9.1-r869
> Calibrating delay loop... OK.
> Found chip "ST M25P32" (4096 KB, SPI) at physical address 0xffc00000.
> No operations were specified.
>   

Nice.


> Aside from the physical address making not much sense (for any
> non-direct programmer)
>   

Indeed. We can tackle this later.


> MacPro:flashrom stepan$ ./flashrom -p dediprog -r testimage.rom
> flashrom v0.9.1-r869
> Calibrating delay loop... OK.
> Found chip "ST M25P32" (4096 KB, SPI) at physical address 0xffc00000.
> Reading flash... ^C
>
> The reading does not seem to work yet, even after several minutes, the
> image is still zero bytes.
>   

Hm. To be honest, reading is something I could not find in the logs.
Then again, maybe some diagnostics in SPEW mode could help. Please run

flashrom -p dediprog -VV -r testimage.rom

with the following debug patch (you need to run "make distclean" before
compiling it)


Mark 4 byte RDID as supported by Dediprog.
Really abort if any unhandled command sizes are run.
Add some debugging at SPEW level.

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

Index: flashrom-dediprog_fixups_debug/spi.c
===================================================================
--- flashrom-dediprog_fixups_debug/spi.c        (Revision 870)
+++ flashrom-dediprog_fixups_debug/spi.c        (Arbeitskopie)
@@ -335,6 +335,9 @@
 #if BUSPIRATE_SPI_SUPPORT == 1
        case SPI_CONTROLLER_BUSPIRATE:
 #endif
+#if DEDIPROG_SUPPORT == 1
+       case SPI_CONTROLLER_DEDIPROG:
+#endif
                return probe_spi_rdid_generic(flash, 4);
        default:
                printf_debug("4b ID not supported on this SPI controller\n");
Index: flashrom-dediprog_fixups_debug/dediprog.c
===================================================================
--- flashrom-dediprog_fixups_debug/dediprog.c   (Revision 870)
+++ flashrom-dediprog_fixups_debug/dediprog.c   (Arbeitskopie)
@@ -145,6 +145,7 @@
 
 int dediprog_spi_read(struct flashchip *flash, uint8_t *buf, int start, int 
len)
 {
+       msg_pspew("%s, start=0x%x, len=0x%x\n", __func__, start, len);
        /* Maximum read length is 4 bytes for now. */
        return spi_read_chunked(flash, buf, start, len, 4);
 }
@@ -154,14 +155,21 @@
 {
        int ret;
 
+       msg_pspew("%s, writecnt=%i, readcnt=%i\n", __func__, writecnt, readcnt);
        /* Paranoid, but I don't want to be blamed if anything explodes. */
-       if ((writecnt != 1) && (writecnt != 4))
+       if ((writecnt != 1) && (writecnt != 4)) {
                msg_perr("Untested writecnt=%i, aborting.\n", writecnt);
-       if (readcnt > 4)
+               return 1;
+       }
+       if (readcnt > 4) {
                msg_perr("Untested readcnt=%i, aborting.\n", readcnt);
-       if ((readcnt == 0) && (writecnt != 1))
+               return 1;
+       }
+       if ((readcnt == 0) && (writecnt != 1)) {
                msg_perr("Untested writecnt=%i, readcnt=%i combination, "
                         "aborting.\n", writecnt, readcnt);
+               return 1;
+       }
        
        ret = usb_control_msg(dediprog_handle, 0x42, 0x1, 0xff, readcnt ? 0x1 : 
0x0, (char *)writearr, writecnt, DEFAULT_TIMEOUT);
        if (ret != writecnt) {


-- 
Developer quote of the year:
"We are juggling too many chainsaws and flaming arrows and tigers."


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

Reply via email to