Index: it87spi.c
===================================================================
--- it87spi.c	(revision 992)
+++ it87spi.c	(working copy)
@@ -155,6 +155,28 @@
 				sio_write(port, 0x65, (flashport & 0xff));
 				free(portpos);
 			}
+
+			portpos = extract_param(&programmer_param,
+						"gbdualindex=", ",:");
+			if (portpos) {
+				int chip_index = strtol(portpos, (char **)NULL, 0);
+				if ((chip_index!=0) && (chip_index!=1))	{
+					msg_perr("Dual bios: Invalid chip index requested: %d\n",chip_index);
+					flashport=0;
+				} else {
+					tmp=sio_read(port,0xEF);
+					msg_pinfo("Dual bios: Current chip : %d\n",tmp&1);
+					if (chip_index!=(tmp&1)) {
+						sio_write(port,0xEF,(tmp&0xFE)|chip_index);
+						tmp=sio_read(port,0xEF)&1;
+						if (tmp!=chip_index) {
+							msg_perr("Dual bios: Chip selection failed.\n");
+							flashport=0;
+						} else msg_pinfo("Dual bios: Selected chip: %d\n",tmp&1);
+					}
+				}
+				free(portpos);
+			}
 		}
 		exit_conf_mode_ite(port);
 		break;

