SPRAC21A June 2016 – June 2019 OMAP-L132 , OMAP-L138 , TDA2E , TDA2EG-17 , TDA2HF , TDA2HG , TDA2HV , TDA2LF , TDA2P-ABZ , TDA2P-ACD , TDA2SA , TDA2SG , TDA2SX , TDA3LA , TDA3LX , TDA3MA , TDA3MD , TDA3MV
The bandwidth limiter regulates the packet flow in the L3_MAIN interconnect by applying flow control when a user-defined bandwidth limit is reached. The next packet is served only after an internal timer expires, thus ensuring that traffic does not exceed the allocated bandwidth. The bandwidth limiter can be used with a watermark mechanism that allows traffic to temporarily exceed the peak bandwidth.
Bandwidth limiter:
Programming API for the bandwidth limiter is:
set_bw_limiter(port,limit-bw) {
base_address = get_bw_limiter_base_address(port);
bandwidth = int(limit_bw / 8.3125);
bandwidth_int = ( bandwidth & 0xFFFFFFE0 ) >> 5;
bandwidth_frac = ( bandwidth & 0x1F );
WR_REG32(base_address+0x8,bandwidth_frac);
WR_REG32(base_address+0xC,bandwidth_int);
WR_REG32(base_address+0x10,0x0);
WR_REG32(base_address+0x14,0x1);
}
get_bw_limiter_base_address(port) {
if ( port == "VPE_P2" ) { return
L3_NOC_AVATAR__DEBUGSS_CS_DAP_INIT_OCP_L3_NOC_AVATAR_CLK1_VPE_P2_BW_LIMITER;
}
...
}