mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
49a3e0b9e2
Initially investigating a Linux network issue causing a lot of drop and
poor network performances on a custom system based on a TQMA6A module
(based on an iMX6Q), [1st link below].
I eventually correlated my observations with a contention at the NIC
level when in concurrency with the graphics pipeline. Troubleshooting
this in the kernel lead to disabling DMA bursts accesses made by the IPU
in order to avoid triggering the QoS at the interconnect level, reducing
from 50 to 10% the drop rate on eth0, [2nd link below]. The solution
worked on my setup but not on others, which still suffered from
abnormally high drop rates even with this "fix".
After looking a while into TQ Systems BSP I figured out a number of
differences in recent U-Boot out-of-tree patches they had in their
repository [3rd link]. Parsing the differences one after the other lead
me to this final solution.
The reset pad of the DDR controller was apparently misconfigured, Bit
18-19 picturing the "DDR select field". The current value b11 is
reserved. The only defined value as of version 6 of the iMX6Q manual was
b00 "DDR3 and LPDDR2 mode". In practice no register difference has been
spotted after changing this configuration but all issues tracked thus
far just vanished. All previous fixes have been proven irrelevant. Just
clearing this field solved all our network issues and the drop rate as
measured by iperf3 felt back to 0%.
Link: https://lore.kernel.org/netdev/20231012193410.3d1812cf@xps-13/
Link: https://lists.freedesktop.org/archives/dri-devel/2023-October/428251.html
Link:
|
||
---|---|---|
.. | ||
clocks.cfg | ||
Kconfig | ||
MAINTAINERS | ||
Makefile | ||
README | ||
tqma6.c | ||
tqma6_bb.h | ||
tqma6_mba6.c | ||
tqma6_wru4.c | ||
tqma6dl.cfg | ||
tqma6q.cfg | ||
tqma6s.cfg |
U-Boot for the TQ-Systems TQMa6 modules This file contains information for the port of U-Boot to the TQ-Systems TQMa6 modules. 1. Boot source -------------- The following boot source is supported: - SD/eMMC - SPI NOR 2. Building ------------ To build U-Boot for the TQ-Systems TQMa6 modules: make tqma6<x>_<baseboard>_<boot>_config make x is a placeholder for the CPU variant q - means i.MX6Q/D: TQMa6Q (i.MX6Q) and TQMa6D (i.MX6D) dl - means i.MX6DL: TQMa6DL (i.MX6DL) s - means i.MX6S: TQMa6S (i.MX6S) baseboard is a placeholder for the boot device mmc - means eMMC spi - mean SPI NOR This gives the following configurations: tqma6q_mba6_mmc_config tqma6q_mba6_spi_config tqma6dl_mba6_mmc_config tqma6dl_mba6_spi_config tqma6s_mba6_mmc_config tqma6s_mba6_spi_config