> Hi,
>
> I am working on OMAP4430(panda board) and trying to use the EMIF
> performance counters to measure the DDR bandwidth. The registers I
> used are EMIF_PERF_CNT_1, EMIF_PERF_CNT_2,EMIF_PERF_CNT_TIM, and
> EMIF_PERF_CNT_TIM. Looks there are two ways (described below) to
> measure the bandwidth based on the TRM, but they DO NOT agree with
> each other. Can you please help explain it? The two ways I think of
> are following. In addition, what is the relationship between EMIF
> clock, EMIF_L3_ICLK, EMIF_FCLK, and DDR_CLK?
EMIF_FCLK is half of DDR_CLK. EMIF_L3_ICLK is not (necessarily)
synchronous with these.
> 1. Get the counter total read and counter total write (CNTR_CFG=2 and
> 3 respectively), and multiply them by 8 (burst length) and then by 4
> (32 bit DDR data bus).
Is the full burst length always used? I'd hope so, for normal cases,
but the memory performance seen from the A9 is so poor that I have my
doubts.
> 2. Get the count number of EMIF clock for tranferring data
> (CNTR_CFG=10, or 0x0A), and multiply it by 16 (because of the 128 bit
> L3 system bus).
The TRM says this about that setting:
Count number of EMIF clock cycles for which the memory data bus was
transferring data.
The way I read this, it counts EMIF cycles with data on the DDR bus, in
other words the counter increments on every second DDR bus cycle with
data. This seems to agree with measurements as well.
--
Måns Rullgård
ma...@mansr.com
yes, sort of.. although proper configuration is not really possible
(missing ROM code API) on es2.1 gp devices (ie. all A1 pandas)
BR,
-R
Can you elaborate? A pointer to errata? For example lmbench does indeed
give some quite poor memory performance results. I was sort of looking
forward to see how wonderfull the new memory subsystem would be compared
to OMAP3..
OK, from their TRM: Two 64-bit master ports, one to L3 and one to EMIFIf their chart is correct that master 0 connects EMIF and master 1 connects to L3, we have no way to configure PL310's address filter register because it only give a way to route a range of memory to master 1, but OMAP4's memory address isn't start from 0.