Space related Issue with Colibri VF50

Hi support team,

I am using Colibri VF50 on Iris carrier board.I have facing issue with the memory.see the below details about the H/W

128MB DDR3 (16Bit) or 64MB DDR3 w ECC (8+2Bit)
128MB NAND FLASH (8 Bit)

I used yocto build for the linux kernel and there was happening like Once I flashed rootfs after that there is much more partition showing like:

root@colibri-vf:~# df -h
Filesystem                Size      Used Available Use% Mounted on
ubi0:rootfs             108.1M     78.4M     29.6M  73% /
devtmpfs                 50.4M         0     50.4M   0% /dev
tmpfs                    58.5M         0     58.5M   0% /dev/shm
tmpfs                    58.5M    232.0K     58.2M   0% /run
tmpfs                    58.5M         0     58.5M   0% /sys/fs/cgroup
tmpfs                    58.5M      2.3M     56.1M   4% /tmp
tmpfs                    58.5M         0     58.5M   0% /var/volatile
tmpfs                    11.7M         0     11.7M   0% /run/user/0

Here, I guess first partition is the internal nand flash partition. but it was showing only 108Mb instead of 128Mb and rest of devtmpf and tmpfs taking much more can you tell me where is the handle this partition management part and why it showing less memory of the nand flash.I want to add java support on colibri vf50 and it takes near around 50mb space in internal memory. so i need to adjust memory and much possible to optimize rootfs size.

see the below my question regarding space issue:

  1. What is the usable size of the Nand flash? which script handle this partition management?
  2. Is there necessary of the multiple tmpfs? Is it part of the DDR3 RAM or internal flash?

Thanks you support team.
Kanji Viroja.

Let me begin with some introductory notes. Java is definitely a rather heavy technology and for resource constrained Embedded Systems you may consider special variants thereof. Find more information in the following developer website article.

The Colibri VF50’s internal non-volatile NAND flash storage is using UBI/UBIFS for its root file system which is handling all aspects of bad block handling and wear levelling. While this takes up some percentage of space this is absolutely mandatory if using raw NAND flash technology.

Please note that UBIFS’ transparent use of compression brings new meaning to certain numbers as e.g. reported by df. The used size is actually the compressed usage and for our regular console demo image the actual total file sizes thereof are about 102 MB. This also means the 29.6 MB available space may be used for around 25 to 30 % more file storage depending on compressibility of its contents.

Please note however that one should avoid completely filling up any file system as this will severely affect overall performance thereof including expectancy of life.

What is the usable size of the Nand flash?

On Colibri VF50 the space in NAND flash available for customer use is around those 108 MB you are seeing. The other around 20 MB are used for things like headers as required for the boot ROM; the boot loader and its environment; plus quite some percentage goes into bad block and wear levelling be it for those initial parts or UBI/UBIFS for the root file system.

which script handle this partition management?

This is entirely handled by U-Boot’s mtdparts command which is then passed on via device tree to the Linux kernel. The initial configuration comes from the following U-Boot configuration header file.

Is there necessary of the multiple tmpfs?

Yes, those are all virtual file systems that do not affect non-volatile NAND flash storage in any way.

Is it part of the DDR3 RAM or internal flash?

Yes, tmpfs is part of the regular volatile (e.g. its contents won’t survive a reboot) DDR3 RAM. As mentioned above it is definitely not part of the non-volatile NAND flash storage.

You are very welcome.

Thanks a lot for sharing helpful information.