Hello all,

 

I made a patch (https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/16214) that reorganize interaction between ITS partition, ITS file system and ITS flash driver.

 

  1. ITS flash driver interface is decoupled from ITS file system.
  2. ITS flash driver interface isn't dependent on upper layers like ITS FS or ITS.
  3. ITS flash driver emulated in RAM (its_flash_ram) can be used without CMSIS flash driver even in production environment if needed.
  4. Target can provide own implementation of ITS flash driver without implementing CMSIS flash driver. Which can be more flexible or simple in some cases.
  5. Allocation of ITS flash driver instance by ITS partition is not dependent on lower layers like CMSIS driver. ITS partition uses abstract flash driver interface to bind ITS file system and driver instance.

 

This changes gives following benefits.

  1. Vendors can provide ITS flash driver without need to create an intermediate CMSIS flash driver.
  2. It's possible to implement ITS encryption by adding a new ITS flash driver that performs encryption and uses existing drivers (NOR, NAND, RAM, platform specific) as the storage backend.
  3. It’s possible to use ITS file system + ITS encryption driver (b) for Protected Storage directly without additional context switching during access to PS file system handled by ITS partition. I think it should improve performance of PS.
  4. Use ITS file system directly in application specific custom partitions by allocating ITS file system context and ITS flash driver.

 

Best regards,

Roman.