Hi, I was wondering does FVP supports peripherals connected through SMMU.
I want to introduce any peripherals on FVP and make it generates access memory through the SMMU to test SMMU capabilities (e.g., emulating nvme storage).
I found that tf-a-test provides spm/cactus/cactus_tests/cactus_tests_smmuv3.c for testing smmuv3, but I cannot understand how this works in detail. Seems that the command delivered to this emulated device sends another command to SMMU to do memcpy. How is it possible without setting the SMMU (e.g., smmu page table)? In the example, the stream id is 0 or 1 based on frame, but I assume that fvp doesn't initialize the SMMU and its corresponding page table before executing this code.. how can I know that it accesses the memory through SMMU?
It seems that smmuv3testengine is a device that just generates some command to SMMU based on its configuration (e.g., memcpy). If my understanding is correct, does it only provide 3 operations? (MEMCPY, RAND, SUM).
Is there any way I can add some more operations allowing this emulated device to talk to SMMU?
FVP is Fixed Virtual Platform, which is the pre-configured and pre-built executable so that you cannot change the hardware hierarchy or hardware topology.