mirror of
https://github.com/apache/nuttx.git
synced 2026-05-22 22:20:01 +08:00
ftl:adjust ftl for RRAM/MRAM
Accessing RRAM/MRAM from the FTL interface can cause errors because RRAM lacks an erase interface. To make RRAM/MRAM compatible with FTL, the FTL layer erase interface needs to be modified. Signed-off-by: jingfei <jingfei@xiaomi.com>
This commit is contained in:
+5
-4
@@ -392,13 +392,14 @@ static ssize_t ftl_mtd_erase(FAR struct ftl_struct_s *dev, off_t startblock)
|
||||
if (dev->lptable == NULL)
|
||||
{
|
||||
ret = MTD_ERASE(dev->mtd, startblock, 1);
|
||||
if (ret < 0)
|
||||
if (ret != 1 && ret != -ENOSYS)
|
||||
{
|
||||
ferr("ERROR: Erase block %" PRIdOFF " failed: %zd\n",
|
||||
startblock, ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return ret;
|
||||
return 1;
|
||||
}
|
||||
|
||||
while (1)
|
||||
@@ -409,9 +410,9 @@ static ssize_t ftl_mtd_erase(FAR struct ftl_struct_s *dev, off_t startblock)
|
||||
}
|
||||
|
||||
ret = MTD_ERASE(dev->mtd, dev->lptable[startblock], 1);
|
||||
if (ret == 1)
|
||||
if (ret == 1 || ret == -ENOSYS)
|
||||
{
|
||||
return ret;
|
||||
return 1;
|
||||
}
|
||||
|
||||
MTD_MARKBAD(dev->mtd, dev->lptable[startblock]);
|
||||
|
||||
Reference in New Issue
Block a user