We use a Colibri T20 with WEC7.
Due to intermittent flash crashes we are looking for a tool to read the smart parameters of the flash (bad clock count, number of write cyles and so on).
Do anybody know such a tool for WEC7?
Toni
We use a Colibri T20 with WEC7.
Due to intermittent flash crashes we are looking for a tool to read the smart parameters of the flash (bad clock count, number of write cyles and so on).
Do anybody know such a tool for WEC7?
Toni
SMART is a monitoring system included in hard disk drives, solid-state drives and eMMC drives. Colibri T20 has no one of listed above. It uses a raw NAND as a storage. So no SMART attributes are available.
Hi Alex.tx,
thank you for your answer.
I am not a specialist in flash management, but the wear leveling and badblock mangement layer of the T20 NANDFLASH must store it’s information somewhere within the flash, isn’t it?
There is no way to find and read this information?
Regards,
Toni
Hi @Toni ,
The wear leveling and badblock management is very complex and we don’t have tools ready to analyze that. There is an option to dump out more internal information, but it will not help you much if you don’t know all the details of the internal workings.
Can you maybe specify a bit better what kind of flash crashes you see? Flashdisk file corruption? files disappearing, intermittent wrong readed data?
Can you also spicify what BSP version you’re using? We did some fixes in newer versions… but maybe you’re already using the newest version?
Hi Germano.tx,
I don’t know exactly what happens and how often the user software writes to the flash.
According to our customer, in the event of an error the display remains dark after power on. Unfortunately, I do not know yet whether the bootloader is running or not.
After reprogramming the flash using the recovery mode (via USB) everthing works without any errors - until the next crash.
The BSP version is 1.4.
Now I have some more Information about the flash issue:
What does these messages mean?
Is the NAND flash full or are there no free blocks for wear leveling?
Is there any chance to recover from this boot error and find out whether there is for example a very large file?
Regards,
Toni
It means that a new bad block was found but system cant find a free one to do a recovery.
How much free space you have on your “FlashDisk”?
How often your application writes to it and what is a data size for each writing?
Now I have some more informations about the flash:
After installation of the BSP 1.3 based WEC7-image, the “FlashDisk” will be divided into 2 partitions “Part01” and “Part02” with following code:
hStore = OpenStore(_T("DSK1:"));
DismountStore(hStore);
FormatStore(hStore);
CreatePartition(hStore, _T("Part00"), 218240);
CreatePartition(hStore, _T("Part01"), 191);
hPartition = OpenPartition(hStore, _T("Part00"));
MountPartition(hPartition);
CloseHandle(hPartition);
hPartition = OpenPartition(hStore, _T("Part01"));
if (hPartition != INVALID_HANDLE_VALUE)
MountPartition(hPartition);
CloseHandle(hPartition);
CloseHandle(hStore);
In “Part02” the operating hours are saved, once an hour.
In “Part01” resides the user application. Currently I don’t know whether the user application writes into the flash and if so how often.
Unfortunately I can not find out how much free space is in each partition, since WEC7 does not boot.
Would “nvflash” be a possibility to determine the free space?
Regards,
Toni
You are using very old image (v1.3). We have a lot of fixes including NAND ECC corrections. Could you please flash V2.3 image using latest NVflash tool (v2.6) or an Update tool v6.0.19 ? When use the Update tool you should select ce7.cfg file not a kernel only. In any case it wipe out the whole NAND and you will need to re-install your app.
Our customer now decided to swich to the latest BSP.
What will happen to Colibri modules with previous flash errors after updating to the new image with NVflash tool (V2.6) or Update toll (v6.0.19)?
Are the flashes damaged or is their condition as if the latest BSP had always been in use?
During update bad blocks get marked as a good ones. Blocks will be marked as bad if they continue to generate CRC errors due to flash wearing.