Currently flashrom assumes every vendor BIOS shares our view about which
SPI opcodes should be placed in which location. Move to a less
optimistic implementation and actually use the generic SPI read
functions. They're useful for abstracting exactly this stuff and that
makes them the preferred choice.

This patch depends on the patch with improved SPI error checking.

Signed-off-by: Carl-Daniel Hailfinger <[EMAIL PROTECTED]>

Index: flashrom-ich_spi_generalize/ichspi.c
===================================================================
--- flashrom-ich_spi_generalize/ichspi.c        (Revision 3754)
+++ flashrom-ich_spi_generalize/ichspi.c        (Arbeitskopie)
@@ -300,7 +300,7 @@
        if (op.atomic != 0) {
                /* Select atomic command */
                temp16 |= SPIC_ACS;
-               /* Selct prefix opcode */
+               /* Select prefix opcode */
                if ((op.atomic - 1) == 1) {
                        /*Select prefix opcode 2 */
                        temp16 |= SPIC_SPOP;
@@ -491,19 +491,15 @@
        for (a = 0; a < page_size; a += maxdata) {
                if (remaining < maxdata) {
 
-                       if (run_opcode
-                           (curopcodes->opcode[1],
-                            offset + (page_size - remaining), remaining,
-                            &buf[page_size - remaining]) != 0) {
+                       if (spi_nbyte_read(offset + (page_size - remaining),
+                               &buf[page_size - remaining], remaining)) {
                                printf_debug("Error reading");
                                return 1;
                        }
                        remaining = 0;
                } else {
-                       if (run_opcode
-                           (curopcodes->opcode[1],
-                            offset + (page_size - remaining), maxdata,
-                            &buf[page_size - remaining]) != 0) {
+                       if (spi_nbyte_read(offset + (page_size - remaining),
+                               &buf[page_size - remaining], maxdata)) {
                                printf_debug("Error reading");
                                return 1;
                        }


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

Index: flashrom-ich_spi_generalize/ichspi.c
===================================================================
--- flashrom-ich_spi_generalize/ichspi.c        (Revision 3754)
+++ flashrom-ich_spi_generalize/ichspi.c        (Arbeitskopie)
@@ -300,7 +300,7 @@
        if (op.atomic != 0) {
                /* Select atomic command */
                temp16 |= SPIC_ACS;
-               /* Selct prefix opcode */
+               /* Select prefix opcode */
                if ((op.atomic - 1) == 1) {
                        /*Select prefix opcode 2 */
                        temp16 |= SPIC_SPOP;
@@ -491,19 +491,15 @@
        for (a = 0; a < page_size; a += maxdata) {
                if (remaining < maxdata) {
 
-                       if (run_opcode
-                           (curopcodes->opcode[1],
-                            offset + (page_size - remaining), remaining,
-                            &buf[page_size - remaining]) != 0) {
+                       if (spi_nbyte_read(offset + (page_size - remaining),
+                               &buf[page_size - remaining], remaining)) {
                                printf_debug("Error reading");
                                return 1;
                        }
                        remaining = 0;
                } else {
-                       if (run_opcode
-                           (curopcodes->opcode[1],
-                            offset + (page_size - remaining), maxdata,
-                            &buf[page_size - remaining]) != 0) {
+                       if (spi_nbyte_read(offset + (page_size - remaining),
+                               &buf[page_size - remaining], maxdata)) {
                                printf_debug("Error reading");
                                return 1;
                        }
--
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to