u-boot-brain/board/toradex
Philippe Schenker f72e48ba4d board: apalis_imx6: Add KSZ9131 phy skew settings
This patch adds skew register settings for KSZ9131. It checks first
which phy is on the board and then applies the correct skew settings.

Skew settings calculation for the KSZ9131:
The i.MX6 SoC has an output skew tolerance of -100ps to 900ps. All
PCB traces where routed exactly the same length so we can calculate
the skew settings without taking the length into consideration. The
traces are all length matched.

RXC skew (PHY to MAC):
- We use the 2ns DLL controlled delay on the PHY
- We do not use the skew registers

This results in the following values:

		RXC
PHY fixed Delay	2000ps
PHY Added Delay	0ps
T_setup_R min	2.00ns
T_setup_R typ	2.00ns
T_setup_R max	2.00ns
T_hold_R min	1.60ns
T_hold_R typ	2.00ns
T_hold_R max	2.40ns

That means we are well within RGMII specs.

TXC skew (MAC to PHY):
- We use the 2ns DLL controlled delay on the PHY
- We then subtract ~0.6ns with TXD[0:3] and TXC clock pad skew
  register in a resulting ~1.4ns delay.

This results in the following values under consideration of the
tolerances:

		TXC min	TXC typ	TXC max
MAC min		-100ps	-100ps	-100ps
MAC max		900ps	900ps	900ps
PHY fixed Delay	2000ps	2000ps	2000ps
PHY added Delay	-340ps	-600ps	-859ps
T_setup_T min	1.56ns	1.30ns	1.04ns
T_setup_T typ	2.06ns	1.80ns	1.54ns
T_setup_T max	2.56ns	2.30ns	2.04ns
T_hold_T min	1.04ns	1.30ns	1.56ns
T_hold_T typ	1.94ns	2.20ns	2.46ns
T_hold_T max	2.84ns	3.10ns	3.36ns

This shows that T_hold_T min and T_setup_T min times are out of spec
for RGMII timing. However the KSZ9131 has a minimal value for this time
of 0.8ns which is met under all circumstances.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
2020-05-01 13:46:22 +02:00
..
apalis-imx8 doc: update reference to README.imx8image 2020-04-16 23:06:54 -04:00
apalis-tk1 env: Rename environment.h to env_internal.h 2019-08-11 19:27:31 -04:00
apalis_imx6 board: apalis_imx6: Add KSZ9131 phy skew settings 2020-05-01 13:46:22 +02:00
apalis_t30 board: toradex: turn off lcd backlight before OS handover 2019-02-20 09:01:45 -07:00
colibri-imx6ull doc: update reference to README.imximage 2020-04-16 23:06:54 -04:00
colibri-imx8x doc: update reference to README.imx8image 2020-04-16 23:06:54 -04:00
colibri_imx6 colibri_imx6: set gpr1 ENET_CLK_SEL 2020-04-07 10:40:19 +02:00
colibri_imx7 doc: update reference to README.imximage 2020-04-16 23:06:54 -04:00
colibri_pxa270 common: Move some cache and MMU functions out of common.h 2019-12-02 18:23:55 -05:00
colibri_t20 board: toradex: turn off lcd backlight before OS handover 2019-02-20 09:01:45 -07:00
colibri_t30 MAINTAINERS: change colibri_imx6/imx6ull/t30/vf maintainers 2020-01-07 10:26:56 +01:00
colibri_vf doc: update reference to README.imximage 2020-04-16 23:06:54 -04:00
common toradex: tdx-cfg-block: add Verdin iMX8M Mini/Nano support 2020-02-09 14:50:52 +01:00
verdin-imx8mm board: verdin-imx8mm: Add KSZ9131 phy skew settings 2020-05-01 13:46:22 +02:00