changeset 437:2cd705c8116e

loadtools: Mot C155 turns out to have the same flash partition quirks as the flash chip on TI's D-Sample c155.config changed to use the fixed 28f640w30b config instead of CFI, and a bit of C code in fc-loadtool had to be changed too so that flash erase-program-boot still works.
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 06 Nov 2018 16:02:23 +0000
parents d43e7444f458
children 2ba7512efae5
files loadtools/flcmplboot.c loadtools/scripts/c155.config
diffstat 2 files changed, 11 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/loadtools/flcmplboot.c	Mon Nov 05 03:20:34 2018 +0000
+++ b/loadtools/flcmplboot.c	Tue Nov 06 16:02:23 2018 +0000
@@ -15,6 +15,7 @@
 
 extern struct flash_bank_info flash_bank_info[2];
 extern struct flash_cmdset flash_cmdset_intel;
+extern struct flash_cmdset flash_cmdset_intel_w30;
 
 extern uint32_t crc32_table[];
 
@@ -147,7 +148,8 @@
 		"error: detected flash boot sector size differs from config\n");
 		return(-1);
 	}
-	if (flash_bank_info[0].ops != &flash_cmdset_intel) {
+	if (flash_bank_info[0].ops != &flash_cmdset_intel &&
+	    flash_bank_info[0].ops != &flash_cmdset_intel_w30) {
 		fprintf(stderr,
 			"error: operation implemented for Intel flash only\n");
 		return(-1);
--- a/loadtools/scripts/c155.config	Mon Nov 05 03:20:34 2018 +0000
+++ b/loadtools/scripts/c155.config	Tue Nov 06 16:02:23 2018 +0000
@@ -12,9 +12,14 @@
 # The remaining settings are carried out via loadagent commands
 init-script c155.init
 
-# Flash: use CFI autodetection, 8 MiB max
-# Unlike C139, C155 and C156 phones do have working flash mapping at 0x03000000
-flash cfi-8M 0x03000000
+# 8 MiB flash, accessible at 0x03000000 without the strange issue
+# seen on the lower C1xx models, but the flash chip turns out to have
+# partition quirks like the one on the D-Sample, so we need to
+# tell fc-loadtool about it explicitly instead of using CFI.
+# The actual chip in these phones is a flash+RAM MCP, but the flash part
+# is exactly the same as the 28F640W30B on the D-Sample (same geometry,
+# same ID codes), so we just tell fc-loadtool that it's a 28F640W30B.
+flash 28f640w30b 0x03000000
 
 # bottom boot flash, sector 0 is only 8 KiB
 boot-reflash-hack 0x820000 0x2000