diff --git a/it87spi.c b/it87spi.c
index 1fd330913bd50cee6b267bcc525746681d591b3a..75010df5eaaa5f7c2b80ce0ef6bcdc12c4705a46 100644
--- a/it87spi.c
+++ b/it87spi.c
@@ -93,6 +93,12 @@ static uint16_t find_ite_spi_flash_port(uint16_t port)
 			0xFFF80000, 0xFFFEFFFF, (tmp & 1 << 3) ? "en" : "dis");
 		printf("LPC write to serial flash %sabled\n",
 			(tmp & 1 << 4) ? "en" : "dis");
+		/* If any serial flash segment is enabled, enable writing. */
+		if ((tmp & 0xe) && (!(tmp & 1 << 4))) {
+			printf("Enabling LPC write to serial flash\n");
+			tmp |= 1 << 4;
+			regwrite(port, 0x24, tmp);
+		}
 		printf("serial flash pin %i\n", (tmp & 1 << 5) ? 87 : 29);
 		/* LDN 0x7, reg 0x64/0x65 */
 		regwrite(port, 0x07, 0x7);