ETH: cache operator improvement

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: Medium
    • MCAL
    • MCAL-27030
    • MCAL_SitaraMPU_10.01.00
    • MCAL_SitaraMPU_10.01.00
    • Hide
      am62a-evm
      am62d-evm
      am62p-evm
      am62x-evm
      j7200-evm
      j721e-evm
      j721s2-evm
      j722s-evm
      j742s2-evm
      j784s4-evm
      Show
      am62a-evm am62d-evm am62p-evm am62x-evm j7200-evm j721e-evm j721s2-evm j722s-evm j742s2-evm j784s4-evm

      (a) Add memory fence for RING QUEUE operation
        - J7 platform use Message mode -> no  QUEUE operation happens -> no need FENCE
        - SMPU SDK does not support FENCE -> this is the code in SMPU SDK

          static inline void CSL_archMemoryFence(void)
          {
          #if defined (__aarch64__)
              Armv8_dsbSy();
          #endif
          #if (__ARM_ARCH == 7) && (__ARM_ARCH_PROFILE == 'R') /* R5F */
              //CSL_armR5Dsb(); //TODO
          #endif
          } 

      (b) Remove cache invalidate for DMA desc in Eth_receiveProcess function
      After DMA filled descriptor Eth_receiveProcess always need to invalidate that descriptor to read latest content

      (c) Invalidate Rx user data right before submit to queue: Eth_receiveProcess
      Scenario need to address:

      1. Receive packet N, packet buffer is in cache
      2. Packet N is recycled -> submitted back to FQ
      3. Packet M is received, which reutilizes same packet buffer
      4. Buffer in DDR has new content of packet M, but cache has content of packet N
      5. Packet buffer in cache gets flushed to DDR automatically
      6. Packet M content is corrupted 

            Assignee:
            TI User
            Reporter:
            TI User
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved:

                Connection: Intermediate to External PROD System
                EXTSYNC-4970 - ETH: cache operator improvement
                SYNCHRONIZED
                • Last Sync Date: