Colibri iMX7 WEC7 UART driver Registry clarifications

We want to check performance of our application, with Hard Real-time requirements, on Colibri iMX7S and for this we need a good understanding of the iMX7S WEC7 UART driver default and tunable Registry configuration keys.

  1. The URL (WinCE Serial Port Registry Settings | Toradex Developer Center) does not give much info. Actually, I think this URL info is outdated because the actual Registry keys currently available(shown below) does not match:-
    alt text

  2. Comparing with WEC6 UART driver Registry configuration are the below UART driver performance tuning Registry keys are available in WEC7?

  • EnableDMA
  • UsingISR
  • Priority256
  • ThreadPriority
  • MDDBufferSize

Please provide as much details as possible about the WEC7 UART driver architecture and how to go about fine-tuning this driver performance through appropriate Registry key parameters.

Thanks in advance for your support.

The only useful for tuning parameters are:

EnableDMA

Priority256

Buffer size is hardcoded to 2048. ISR always is in use.

Hello @alex.tx , thanks for the inputs.
But these keys are not presently defined in the iMX7/WEC7 Registry for COM2 and COM3.

  1. What are the default values used for ‘EnableDMA’ and ‘Priority256’ by the WEC7 UART driver if these keys are not present in the Registry?

  2. If we need to define these Registry keys then what are the ideal values for ensuring the best performance of WEC7 UART drivers?

Thanks in advance for your further support.

From article you mentioned:

[HKLM\Drivers\BuiltIn\UARTX]
“EnableDMA” = “dword:1” ; default is 0

The Priority256 default value is THREAD_PRIORITY_NORMAL (251) as it for all any other drivers.

It’s definitely worth to try enable DMA. And you can increase priority by lowering it number but don’t go to high since it may hurt overall system performance.

Could you tell more about your case? And what kind of problem you are experience now with UART response time?

Hi @alex.tx ,

  1. Looks like a “DEFAULT_CE_THREAD_PRIORITY = 103” value used if ‘Priority256’ registry key is absent.
  2. Enabling DMA is creating prroblems in our application for both COM2 and COM3. That is, the data reception, after data transmit, sometimes times-out for no reason.
  3. Disabling DMA “EnableDMA” = “dword:0” is working fine for now. As the data through-put in this specific application is not high it is OK for now.

Please note exactly the same application software is used for both DMA-Enabled and DMA-Disabled test scenarios.

  1. Yes you correct default priority is DEFAULT_CE_THREAD_PRIORITY.
  2. Could you provide more details about your problem when DMA is enabled? Could describe steps in details to let us reproduce this issue?