#include <target/image.h>
+/**
+ * @file
+ * Upper level of NOR flash framework.
+ * The lower level interfaces are to drivers. These upper level ones
+ * primarily support access from Tcl scripts or from GDB.
+ */
+
struct flash_bank *flash_banks;
int flash_driver_erase(struct flash_bank *bank, int first, int last)
/** @todo: handle erasures that cross into adjacent banks */
addr -= c->base;
+ last_addr -= c->base;
for (i = 0; i < c->num_sectors; i++)
{
break;
}
- /* REVISIT This needlessly touches sectors BETWEEN the
+ /* FIXME This needlessly touches sectors BETWEEN the
* sections it's writing. Without auto erase, it just
- * writes ones; unlikely to destroy data.
+ * writes ones. That WILL INVALIDATE data in cases
+ * like Stellaris Tempest chips, corrupting internal
+ * ECC codes; and at least FreeScale suggests issues
+ * with that approach (in HC11 documentation).
*
* With auto erase enabled, data in those sectors will
* be needlessly destroyed; and some of the limited