This at least should make the "nand info" command a little more useful.
---
 src/flash/nand.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/src/flash/nand.c b/src/flash/nand.c
index 2b3b517..7946e34 100644
--- a/src/flash/nand.c
+++ b/src/flash/nand.c
@@ -689,6 +689,8 @@ int nand_erase(struct nand_device_s *device, int 
first_block, int last_block)
                        LOG_ERROR("erase operation didn't pass, status: 
0x%2.2x", status);
                        return ERROR_NAND_OPERATION_FAILED;
                }
+
+               device->blocks[i].is_erased = 1;
        }
        
        return ERROR_OK;
@@ -770,9 +772,15 @@ int nand_write_plain(struct nand_device_s *device, u32 
address, u8 *data, u32 da
 
 int nand_write_page(struct nand_device_s *device, u32 page, u8 *data, u32 
data_size, u8 *oob, u32 oob_size)
 {
+       u32 block;
+
        if (!device->device)
                return ERROR_NAND_DEVICE_NOT_PROBED;
                
+       block = page / (device->erase_size / device->page_size);
+       if (device->blocks[block].is_erased == 1)
+               device->blocks[block].is_erased = 0;
+
        if (device->use_raw || device->controller->write_page == NULL)
                return nand_write_page_raw(device, page, data, data_size, oob, 
oob_size);
        else
-- 
1.6.2.1.484.gaff6a

_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to