product search
Eco product
c-Dance Collaboration

FAQs

A 01.

TFS4 basically supports all kind of external devices and storage but we strongly recommend using OneNAND™ or MMC

note

Samsung S/W supports only OneNAND™

A 02.

Yes, Your PC can detect files or directories in a TFS4 format. But you should configure TFS4 file as described below to enable it detect.

If you have full TFS4 source code then you must define “TFS4_USE_EXT_INTERFACE” macro while compiling TFS4. If you do not have the full source code then you must get the TFS4 source code that has "TFS4_USE_EXT_INTERFACE" macro in the binary format.

Moreover, you need to configure the UMS (USB mass storage) code to XSR (a sort of FTL and the lowest component of TFS4), to allow some files in a TFS4 to be read or written on your PC. We do not offer UMS code

A 03.

Yes. The TFS4 package includes some codes to test TFS4's basic operations in a shell format through UART. The test code is located under "test" directory in the package. You can test them by using a "tfs4_integration.c" file. For details on the TFS4 test process, refer to the Chapter 5. TFS4 Test Process of TFS4 Porting Guide

A 04.

There are two ways for the file overwriting; TFS4_creat() and TFS4_open().

Using TFS4_creat()

In the case that the existing "test.txt" file is deleted from TFS4 and you try to create a new file, use a tfs4_creat(). New "test.txt" file size begins from 0 and the total size of the file is determined by tfs4_write(). But, actual writing is completed by tfs4_fsync(). The file creation is recorded to FAT directly.

Using TFS4_open()

In the case of overwriting data on the existing "test.txt" file, you can use a tfs4_open(). Using tfs4_open() makes the file size 200bytes because the existing "test.txt" file was 200bytes. If a new 100bytes size "test.txt" is written on it, first half of the file is overwritten, and the other half remains. Thus, the remaining 100bytes needs to be cut off by tfs4_truncate(). Or, you can perform tfs4_truncate() before the file write. Then, it first shortens the file size to 100bytes and new 100bytes size of "test.txt" can be written on it. If you perform tfs4_truncate() first and then file write, the written data and 100bytes file size is maintained, even after power is suddenly lost.

For both cases, tfs4_write()follows tfs4_creat() or tfs4_open(). And to complete the tfs4_write()operation, tfs4_fsync() should be performed. All the file write operations (tfs4_creat(), tfs4_append(), etc) fill data into a buffer, and then tfs4_fsync() actually writes data on OneNAND™ flash memory. However, if you use a "TFS4_O_DIRECT" flag, data is written on OneNAND™ flash memory without going through the buffer

A 05.

It means TFS4 is stable in sudden power off. TFS4 manages a "@samsung.ess (TFS4_1.6->tfs4_160.ess, TFS4_2.0->tfs20.ess)" file in each volume that has write function-related logs. With this information, TFS4 can quickly recover itself even during sudden power loss. TFS4 undoes the write operation that was performing before the power off or redoes the erase operation that was performing before the power off

A 06.

TFS4 uses a semaphore, so that the currently running operation is not immediately affected by external interrupt such as external device insertion or ejection. Operations by external device can be performed only after current operation is completed.
There are two types of interrupts that happen from external device: insert and remove. TFS4 checks only the external device state and performs mount operation when TFS4 API is called. It greatly reduces the interrupt handling time

A 07.

TFS4 is composed of FAL and KFAT. FAL is File System abstraction layer and KFAT is a FAT compatible File System. Of them, KFAT can be substituted with other File System as needed.

A 08.

It could be possible. But, TFS4 is tested on SAMSUNG’s OneNAND™ device, so we do not guarantee a problem caused by using other manufacturer's devices.

A 09.

Yes. There are some characters that cannot be used for file or directory. They are as follows.

" * / : < > ? \ |

And there are some words that cannot be used for file or directory. The following are predefined unusable names.

"CON ", "PRN ", "NUL ", "AUX ","COM1 ", "COM2 ", "COM3 ", "COM4 ", "COM5 ",
"COM6 ", "COM7 ", "COM8 “, "COM9 ","LPT1 ", "LPT2 ", "LPT3 ", "LPT4 ", "LPT5 ",
"LPT6 ", "LPT7 ", "LPT8 ", "LPT9 ",

All characters except the above are available.
Moreover, if you use the following characters in a short file name, a long file name entry is created.

+ , ; = [ ]

The above rules are the same as Windows.

A 10.

TFS4 enables a file or directory name to be read in any language by using Unicode or MBCS. Unicode supports a long file name and MBCS supports a short file name.
In the case that your application sets a codepage949 and keeps an 8.3 format, a short file name can be supported. To be able to use it in a different file system, it should be converted to Unicode to be seen properly. If it is not converted to Unicode and the MBCS is used as it is, the file name might be seen as broken characters in an environment where the MBCS isn't set to codepage949. Functions are all treated as ASCII, and a character string is processed by Unicode and MBCS

A 11.

In those cases, you should modify the following 3 files.

  • First, you should modify PAM.cpp in PAM directory. The function pointer value of pstLFT[] should be changed according to the NAND type you want to use because each NAND can have its unique functions.
  • Second, you should modify LLD code in LLD directory such as ONLD.cpp. LLD means a low level driver and describes the exact operation of each OneNAND™.
  • Lastly, you should modify tfs4_pdev_nand_xsr.h in TFS4\FAL\INC directory. In this file, you can configure OneNAND™ parameters for XSR on your needs.
note

SAMSUNG S/W does not supports NAND flash memory but supports all OneNAND™ Products

A 12.

They have different meanings from each other. In XSR, a volume is a set of chips. One volume could be bundled by up to 4 of the same types of chips and is managed by STL. For example,

  • If you use one chip, you can configure it as one volume.
  • If you use two chips and they are different types, you can configure it as 2 volumes. But if the two chips are the same type, it could be one volume.

In TFS4, a volume is a sort of partition. Formatting TFS4 by fdisk, the memory device could be partitioned as /a/, /b/, /c/, and /d/ volume like a hard disk drive. It is a logical concept. But, there should be one partition that has a File System attribute in XSR.