Hello together,
I am working on the application based on the UART. The problem is:
+ Interbyte is too long (~20ms) while I test on BeagleBone Black the result is okay for the same code.
Could you please let me know any issue that affects the interbyte, or latency?
I suspect that frequency scaling/power management
I am looking forward to you respond.
Thanks.
Tan
Hi all,
The issue will be resolved if I merge the imx.c into the latest branch of https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/log/drivers/tty/serial/imx.c?of...
Thank you so much for your support all.
Hello together,
I suspect that once a system is in idle state the OS could decide to save energy and to clock down the CPU core. This would / could include the reduction of the peripherals on the bus.
I assume the i.mx6 will also have several PLLs for CPU core and / or components such as the UART.
Using the energy saving reduction of the frequency will mean that the PLL will have to be reconfigured. I believe the adjustment of the PLL is multiple operations (instructions to certain registers) and the PLL has to be locked (which can take several microseconds(?)) and during this time no access to peripherals will be possible.
I assume that the high latency is only caused by the CPU frequency governor permanently trying to change the CPU frequency which will stall access to the UART component.
So could you please let me know how can I disable Frequency scaling on i.MX6q Sabre Auto?
Thanks,
Tan
Does this patch help?
Regards,
Fabio Estevam
Hi Le
one can try kernel boot parameter enable_wait_mode=off
this wiil reduce system latencies.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------