tcl/str7x: Reset init unlocks the flash
authorEdgar Grimberg <edgar.grimberg@zylin.com>
Tue, 2 Feb 2010 12:17:26 +0000 (13:17 +0100)
committerDavid Brownell <dbrownell@users.sourceforge.net>
Tue, 2 Feb 2010 17:30:33 +0000 (09:30 -0800)
For STR7x flash, the device cannot be queried for the protect status.
The solution is to remove the protection on reset init. The driver
also initialises the sector protect field to unprotected.

[dbrownell@users.sourceforge.net: line length shrinkage]

Signed-off-by: Edgar Grimberg <edgar.grimberg@zylin.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
tcl/target/str730.cfg
tcl/target/str750.cfg

index 381fa5fcac03e3f273071b49e20060fbff9d9027..cab2338feb41cb7fc1eb1230bea563cec40e3a42 100644 (file)
@@ -34,7 +34,14 @@ set _TARGETNAME $_CHIPNAME.cpu
 target create $_TARGETNAME arm7tdmi -endian little -chain-position 0 -variant arm7tdmi
 
 $_TARGETNAME configure -event reset-start { jtag_khz 10 }
-$_TARGETNAME configure -event reset-init { jtag_khz 3000 }
+$_TARGETNAME configure -event reset-init {
+       jtag_khz 3000
+
+# Because the hardware cannot be interrogated for the protection state
+# of sectors, initialize all the sectors to be unprotected. The initial
+# state is reflected by the driver, too.
+       flash protect 0 0 last off
+}
 $_TARGETNAME configure -event gdb-flash-erase-start {
        flash protect 0 0 7 off
 }
index 5df968bfc146e3918082abf77a66816b9afd4765..c467ae25b9b593258fcf1142542e7f55436d2c77 100644 (file)
@@ -36,7 +36,15 @@ set _TARGETNAME $_CHIPNAME.cpu
 target create $_TARGETNAME arm7tdmi -endian little -chain-position 0 -variant arm7tdmi
 
 $_TARGETNAME configure -event reset-start  { jtag_khz 10 }
-$_TARGETNAME configure -event reset-init { jtag_khz 3000 }
+$_TARGETNAME configure -event reset-init {
+       jtag_khz 3000
+
+# Because the hardware cannot be interrogated for the protection state
+# of sectors, initialize all the sectors to be unprotected. The initial
+# state is reflected by the driver, too.
+       flash protect 0 0 last off
+       flash protect 1 0 last off
+}
 $_TARGETNAME configure -event gdb-flash-erase-start {
        flash protect 0 0 7 off
        flash protect 1 0 1 off