Handle programmer init errors and abort
If the programmer didn't initialize correctly, it is pointless to
continue.
Fix standalone IT87* SPI init to set flashbus to NONE if no IT87* SPI
communication is possible. Print the I/O port detected by the IT87* SPI
code.
Corresponding to flashrom svn r633.
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Ward Vandewege <ward@gnu.org>
diff --git a/flashrom.c b/flashrom.c
index 7bc9b71..5791372 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -692,7 +692,10 @@
if (optind < argc)
filename = argv[optind++];
- ret = programmer_init();
+ if (programmer_init()) {
+ fprintf(stderr, "Error: Programmer initialization failed.\n");
+ exit(1);
+ }
myusec_calibrate_delay();
diff --git a/it87spi.c b/it87spi.c
index 5183bae..67dfd2b 100644
--- a/it87spi.c
+++ b/it87spi.c
@@ -83,11 +83,12 @@
tmp |= 1 << 4;
sio_write(port, 0x24, tmp);
}
- printf("serial flash pin %i\n", (tmp & 1 << 5) ? 87 : 29);
+ printf("Serial flash pin %i\n", (tmp & 1 << 5) ? 87 : 29);
/* LDN 0x7, reg 0x64/0x65 */
sio_write(port, 0x07, 0x7);
flashport = sio_read(port, 0x64) << 8;
flashport |= sio_read(port, 0x65);
+ printf("Serial flash port 0x%04x\n", flashport);
}
exit_conf_mode_ite(port);
return flashport;
@@ -113,8 +114,11 @@
get_io_perms();
ret = it87spi_common_init();
- if (!ret)
+ if (!ret) {
buses_supported = CHIP_BUSTYPE_SPI;
+ } else {
+ buses_supported = CHIP_BUSTYPE_NONE;
+ }
return ret;
}