SPRZ408D June   2014  – June 2021 AM4372 , AM4376 , AM4377 , AM4378 , AM4379

 

  1.   Trademarks
  2. 1Introduction
    1. 1.1 Device and Development Support Tool Nomenclature
    2. 1.2 Revision Identification
  3. 2All Errata Listed With Silicon Revision Number
  4. 3Usage Notes and Known Design Exceptions to Functional Specifications
    1. 3.1 Usage Notes
      1. 3.1.1 LPDDR2/DDR3: JEDEC Compliance for Minimum Self-Refresh Command Interval
      2. 3.1.2 DDR3/DDR3L: JEDEC Specification Violation for DDR3 RESET Signal When Implementing RTC+DDR Mode
    2. 3.2 Known Design Exceptions to Functional Specifications
      1. 3.2.1 Advisory List
      2.      Advisory 1
      3.      Advisory 2
      4.      Advisory 3
      5.      Advisory 4
      6.      Advisory 5
      7.      Advisory 6
      8.      Advisory 7
      9.      Advisory 8
      10.      Advisory 9
      11.      Advisory 10
      12.      Advisory 11
      13.      Advisory 12
      14.      Advisory 13
      15.      Advisory 14
      16.      Advisory 15
      17.      Advisory 16
      18.      Advisory 17
      19.      Advisory 19
      20.      Advisory 20
      21.      Advisory 21
      22.      Advisory 22
      23.      Advisory 24
      24.      Advisory 25
      25.      Advisory 26
      26.      Advisory 27
      27.      Advisory 28
      28.      i2223
      29.      i2224
      30.      i912
      31.      i2225
      32.      i2226
  5. 4Revision History

Advisory 14

DSS: DSS Limitations

Revisions Affected

1.1, 1.2

Details

Under certain system-level conditions where bandwidth usage is high or spikes, the DSS can experience a FIFO underflow condition causing screen tearing, flickering, or otherwise corrupted LCD data output. Each pipeline in the DSS has its own dedicated 1KB FIFO which, in certain conditions, is not large enough to sustain constant LCD data output when concurrent continuous writes to memory are being performed by other device peripherals. Therefore, system-level peak bandwidth usage must be taken into consideration in order to avoid frequent FIFO underflows from occurring. In the case of high resolution displays, typically for resolutions over 1024x768, FIFO underflows can occur regularly if no steps are taken to properly manage the DSS memory bandwidth requirements. It is recommended to perform system-level stress tests based on the end-application requirements to determine if the worst-case bandwidth consumption causes the DSS FIFO to underflow, especially when using the DSS to drive LCD panels over 1024x768 resolution. In the case where frequent FIFO underflows occur, the following workaround is required for stable operation.

Workarounds

There are three features than can be used to reduce the likelihood of experiencing a DSS underflow: EMIF Class of Service mapping, DSS FIFO merge, and L3 interconnect A9 bandwidth limit. Depending on the end application, a combination of these features can be used to allow for proper DSS operation while minimizing overall system performance impact.

EMIF Class of Service

The Class of Service feature within the EMIF allows the user to assign the DSS to a priority that is higher than the other masters within the system. This ensures that during EMIF arbitration the DSS maintains the highest possible priority. When configuring the EMIF, the DSS should be assigned to Class of Service 1 (COS1). It is recommended to use this feature anytime the DSS is being used and the DSS must always remain the only peripheral assigned to Class of Service 1 to prevent other masters from being selected before the DSS during arbitration. To assign the DSS to COS1 and enable class of service mapping on COS1, the user must write the DSS connection ID, 0x25, to the CONNID_3_COS_1 bit field and set the CONNID_COS_1_MAP_EN bit of the EMIF4D_CONNECTION_ID_TO_CLASS_OF_SERVICE_1_MAPPING register.

To limit the amount of time a DSS command will remain in the EMIF command queue, the user must modify the COS_COUNT_1 bit field in the EMIF4D_COS_CONFIG register. It is recommended to start with the COS_COUNT_1 field be set to 0x0F, which means that if a command sits in the queue for 16 clock cycles then it will be executed next. If a FIFO underflow still occurs with the COS_COUNT_1 field set to 0x0F, the user should decrease this value to further reduce the maximum latency in DSS command execution. On the other hand, the COS_COUNT_1 field can be increased to improve overall system performance as long as system stress tests show there are no DSS FIFO underflows occurring.

MODULEREGISTERFIELDVALUE
EMIFEMIF4D_CONNECTION_ID_TO_CLASS_OF_SERVICE_1_MAPPINGCONNID_3_COS_10x25
EMIFEMIF4D_CONNECTION_ID_TO_CLASS_OF_SERVICE_1_MAPPINGCONNID_COS_1_MAP_EN0x1
EMIFEMIF4D_COS_CONFIGCOS_COUNT_10x0-0xF(1)
See description of EMIF Class of Service workaround above.

FIFO Merge

The FIFO merge feature will consolidate the three DSS pipeline FIFOs into a single 3KB deep FIFO. However, using the FIFO merge feature introduces some feature limitations within the DSS. By performing a FIFO merge, the DSS is limited to the use of only a single plane which makes scaling and overlay features less useful. The FIFO merge feature can be enabled by setting bit 14, FIFO_MERGE, of the DISPC_CFG register in the DSS.

MODULEREGISTERFIELDVALUE
DSSDISPC_CFGFIFO_MERGE0x1

L3 Interconnect A9 Bandwidth Limit

The L3 interconnect can be configured to place a bandwidth limit on the A9 core in order to prevent high-load tasks or sudden spikes in processors activity from consuming too much memory bandwidth which could result in a DSS FIFO underflow. There are two registers within the L3Fast interconnect register space that must be configured to set the A9 bandwidth limit: the NOC_200F_BWLIMITER_MODENA_INIT0_BANDWIDTH_ FRACTIONAL and NOC_200F_BWLIMITER_MODENA_INIT0_BANDWIDTH _INTEGER registers. The configuration values required for a given bandwidth limit can be calculated using the following equation where x is the desired maximum A9 bandwidth on the L3 interconnect and y is resulting bandwidth factor.

x/6.25 = y

The least significant 5 bits of the bandwidth factor (y), [4:0], should be programmed into the BANDWIDTH_FRACTIONAL field of the NOC_200F_BWLIMITER_MODENA_INIT0_ BANDWIDTH_FRACTIONAL register and the remaining most significant bits should be programmed into BANDWIDTH_INTEGER field of the NOC_200F_BWLIMITER _MODENA_INIT0_BANDWIDTH_INTEGER register.

For example, if y = 0x30

BANDWIDTH_FRACTIONAL = 0x10

BANDWIDTH_INTEGER = 0x1

Figure 3-1 NOC_200F_BWLIMITER_MODENA_INIT0_BANDWIDTH_FRACTIONAL Register (Address Offset: 0x00 5208)
31302928272625242322212019181716
RESERVED
1514131211109876543210
RESERVEDBANDWIDTH_FRACTIONAL
R/W-0h