Other Parts Discussed in Thread: AM62P,
Tool/software:
Hi
Other silicon vendors have DDR throughput
See:https://wiki.st.com/stm32mpu/wiki/How_to_measure_the_DDR_throughput.
Does TI have something similar to this.
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Tool/software:
Hi
Other silicon vendors have DDR throughput
See:https://wiki.st.com/stm32mpu/wiki/How_to_measure_the_DDR_throughput.
Does TI have something similar to this.
Hi
This is enabled through our K3conf tools
For AM62x, AM62P,
Please see the following link https://git.ti.com/cgit/k3conf/k3conf/tree/README.md & https://texasinstruments.github.io/processor-sdk-doc/processor-sdk-linux-AM62X/esd/docs/11_00_09_04/linux/How_to_Guides/Target/How_to_Use_K3Conf_Tool.html
root@am62xx-evm:~# k3conf ddrbw
We also incorporate this in some of out demos example
QT OOB which uses perf_stats.cpp underneath - https://texasinstruments.github.io/processor-sdk-doc/processor-sdk-linux-AM62X/esd/docs/11_00_09_04/_images/ti-apps-launcher-home-am62x.png
Right now the same tooling is not enabled AM62L (it is in our roadmap)
We will try to provide you a stop gap solution for that in coming weeks.
The tool k3conf (https://git.ti.com/cgit/k3conf/k3conf/) has command "ddrbw" to measure the DDR utilization.
Please clone the k3conf repo (https://git.ti.com/git/k3conf/k3conf.git, the current HEAD is 30a1d5b2d08c "soc: Add support for J742s2"), then apply the 2 patches attached below. The first patch enables the ddrbw command for AM62Lx, and the second patch fixes a bug in the ddrbw command.
https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/0001_2D00_common_2D00_ddr_2D00_perf_2D00_enable_2D00_for_2D00_am62l_2D00_device.patch
https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/0002_2D00_common_2D00_ddr_2D00_perf_2D00_Fix_2D00_backwards_2D00_read_2D00_and_2D00_write_2D00_counter.patch
Then follow the project README.md to compile k3conf:
$ sudo apt install build-essential cmake
$ sudo apt install gcc-aarch64-linux-gnu
$ export CC=aarch64-linux-gnu-gcc
$ mkdir build
$ cd build
$ cmake .. -Dstatic_exe=ON
$ make
Now copy the k3conf binary to the AM62Lx root filesystem. (for your convenience, I attached the binary below.)
https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/8308.k3conf
To run the tool in AM62Lx Linux, do
# k3conf ddrbw [<sample_duration>] [<count>]
sample_duration: delay between samples in seconds (default: 1 second)
count: number of samples to capture before stopping (default: -1 infinite)
Here info on the FIFO full counters in the DDR Subsystem (Please refer to TRM for register descriptions and addresses)
You can select up to four different counters at one time using EMIF_SSCFG_PERF_CNT_SEL_REG. There are more than four FIFO full counters (selection numbers 0x1C thru 0x23, so you will have to setup a few test for full coverage, but there is most likely only a subset which are relevant.
The four different counts will end up in these registers: EMIF_SSCFG_PERF_CNT[3:0] REG
The counters are free running, so in order to get a true count, you have to take a snapshot of the registers at the beginning of your test, a snapshot at the end, and look at the difference.
As mentioned on the call, I think a good test would be to run your application with different DDR frequencies. You can use the DDR Register Configuration Tool: https://dev.ti.com/sysconfig/?product=Processor_DDR_Config&device=AM62L to get configurations at different frequencies. I would probably choose 800, 667, and 400MHz.
Regards,
James
Hi Rajeena
Sharing the readme file on DDR config on how to change / incorporate changes for 800 MHz or lower
dev.ti.com/tirex/content/Processor_DDR_Config_0.10.01.0000/docs/README.html