diff loadtools/flashops.c @ 410:81d387690063

Intel flash: clear SR before programming
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Tue, 17 Jun 2014 03:40:49 +0000
parents 23ab8fe81764
children
line wrap: on
line diff
--- a/loadtools/flashops.c	Tue Jun 17 03:18:02 2014 +0000
+++ b/loadtools/flashops.c	Tue Jun 17 03:40:49 2014 +0000
@@ -193,12 +193,25 @@
 		return(0);
 }
 
+intel_clear_sr(bi)
+	struct flash_bank_info *bi;
+{
+	printf("Clearing Intel flash SR\n");
+	if (do_w16(bi->base_addr, 0x50)) {
+		fprintf(stderr,
+			"unexpected response to w16 for Clear SR command\n");
+		return(-1);
+	}
+	return(0);
+}
+
 struct flash_cmdset flash_cmdset_intel = {
 	.cmdset_name		= "Intel",
 	.reset_cmd		= intel_reset_cmd,
 	.status_cmd		= intel_status_cmd,
 	.unlock_sector		= intel_sector_unlock,
 	.erase_sector		= intel_sector_erase,
+	.prep_for_program	= intel_clear_sr,
 	.loadagent_setbase_cmd	= "INFB",
 	.loadagent_program_cmd	= "INFW",
 	.needs_unlock		= 1,