u-boot/board
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
..
abilis/tb100 ARC: rework setting of ARC CPU specific compiler options 2020-02-12 21:11:12 +03:00
advantech doc: update reference to README.imximage 2020-04-16 23:06:54 -04:00
alliedtelesis ddr: marvell: a38x: Allow boards to specify CK_DELAY parameter 2020-04-14 08:59:44 +02:00
altera ARM: socfpga: Add default FPGA bitstream fitImage for Arria10 SoCDK 2019-05-10 22:48:10 +02:00
amarula/vyasa-rk3288 common: Move serial functions out of common.h 2019-12-02 18:23:11 -05:00
amazon/kc1 env: Move env_set() to env.h 2019-08-11 16:43:41 -04:00
amlogic arm64: dts: meson: add libretech-pc support 2020-04-06 09:56:35 +02:00
AndesTech common: Move RAM-sizing functions to init.h 2020-01-24 23:06:49 +05:30
Arcturus/ucp1020 common: Move clock functions into a new file 2020-01-24 23:06:48 +05:30
aries/mcvevk arm: socfpga: Re-add support for Aries MCV SoM and MCVEV[KP] board 2019-05-14 19:52:39 +02:00
aristainetos doc: update reference to README.imximage 2020-04-16 23:06:54 -04:00
armadeus Kconfig: Remove redundant variable sets 2020-03-16 16:42:50 -04:00
armltd common: Move RAM-sizing functions to init.h 2020-01-24 23:06:49 +05:30
aspeed/evb_ast2500
astro/mcf5373l common: Move RAM-sizing functions to init.h 2020-01-24 23:06:49 +05:30
atmark-techno/armadillo-800eva common: Move reset_cpu() to the CPU header 2020-01-24 23:06:49 +05:30
atmel common: Move RAM-sizing functions to init.h 2020-01-24 23:06:49 +05:30
avionic-design
bachmann/ot1200 doc: update reference to README.imximage 2020-04-16 23:06:54 -04:00
barco doc: update reference to README.imximage 2020-04-16 23:06:54 -04:00
beckhoff/mx53cx9020 imx: cx9020: migrate cx9020 to CONFIG_DM_USB 2020-01-07 10:26:56 +01:00
birdland/bav335x mtd: rename CONFIG_NAND -> CONFIG_MTD_RAW_NAND 2019-12-03 23:04:10 -05:00
bitmain/antminer_s9 xilinx: Introduce board_late_init_xilinx() 2020-04-27 13:57:17 +02:00
bluegiga/apx4devkit env: Move env_get() to env.h 2019-08-11 16:43:41 -04:00
bluewater common: Move RAM-sizing functions to init.h 2020-01-24 23:06:49 +05:30
bosch am335x, guardian: boot stage feedback in headless mode 2020-04-14 15:44:48 +05:30
boundary/nitrogen6x doc: update reference to README.imximage 2020-04-16 23:06:54 -04:00
broadcom common: Move RAM-sizing functions to init.h 2020-01-24 23:06:49 +05:30
bticino/mamoj common: Move serial functions out of common.h 2019-12-02 18:23:11 -05:00
buffalo/lsxl env: Rename environment.h to env_internal.h 2019-08-11 19:27:31 -04:00
BuR board: brxre1: fix building errors 2020-03-03 13:08:14 +05:30
BuS/eb_cpu5282 common: Move testdram() into init.h 2020-01-24 23:06:49 +05:30
cadence/xtfpga common: Move some board functions out of common.h 2019-12-02 18:25:21 -05:00
calao/usb_a9263 common: Move RAM-sizing functions to init.h 2020-01-24 23:06:49 +05:30
CarMediaLab/flea3 common: Move RAM-sizing functions to init.h 2020-01-24 23:06:49 +05:30
cavium/thunderx common: Move reset_cpu() to the CPU header 2020-01-24 23:06:49 +05:30
ccv/xpress doc: update reference to README.imximage 2020-04-16 23:06:54 -04:00
cei/cei-tk1-som
chipspark/popmetal_rk3288 common: Move some board functions out of common.h 2019-12-02 18:25:21 -05:00
cirrus/edb93xx common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
cloudengines/pogo_e02 common: Move reset_phy() to net.h 2020-01-24 23:06:48 +05:30
cobra5272 doc: update reference to README.board 2020-04-16 23:06:54 -04:00
compal/paz00
compulab dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
comtrend
congatec common: Move some board functions out of common.h 2019-12-02 18:25:21 -05:00
coreboot common: Move some board functions out of common.h 2019-12-02 18:25:21 -05:00
corscience/tricorder dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
cortina board: presidio-asic: Add basic G3 engr. development board support 2020-02-07 16:16:01 -05:00
creative/xfi3
cssi common: Move some board functions out of common.h 2019-12-02 18:25:21 -05:00
CZ.NIC arm: mvebu: turris_mox: fix PCIe ranges in device tree 2020-04-14 13:16:42 +02:00
d-link/dns325 common: Move reset_phy() to net.h 2020-01-24 23:06:48 +05:30
davinci/da8xxevm board: davinci: Update OMAPL138_LCDK maintainer 2019-12-26 09:06:54 -05:00
devboards/dbm-soc1
dfi common: Move some board functions out of common.h 2019-12-02 18:25:21 -05:00
dhelectronics ARM: imx6: DHCOM i.MX6 PDK: Convert to DM_ETH 2020-04-18 13:00:07 +02:00
ea/mx7ulp_com mx7ulp: Add support for Embedded Artists COM board 2020-01-07 10:26:56 +01:00
ebv/socrates arm: socfpga: socrates: make rtc work 2019-04-25 00:00:49 +02:00
eets/pdu001 common: Move some board functions out of common.h 2019-12-02 18:25:21 -05:00
efi common: Move some board functions out of common.h 2019-12-02 18:25:21 -05:00
egnite/ethernut5 common: Move RAM-sizing functions to init.h 2020-01-24 23:06:49 +05:30
el/el6x common: Move some board functions out of common.h 2019-12-02 18:25:21 -05:00
elgin/elgin_rv1108 elgin-rv1108: Use rk_board_late_init() for GPIO settings 2020-03-26 22:58:46 +08:00
embest/mx6boards common: Move some board functions out of common.h 2019-12-02 18:25:21 -05:00
emulation Revert "riscv: qemu: clear kernel-start/-end in device tree as workaround for BBL" 2020-04-23 10:13:35 +08:00
engicam common: Move hang() to the same header as panic() 2020-01-24 23:06:49 +05:30
esd common: Move RAM-sizing functions to init.h 2020-01-24 23:06:49 +05:30
firefly board: roc-pc-rk3399: Add support for onboard LED's and push button to indicate power mode 2020-02-19 16:45:38 +08:00
freescale mx8mq_evk: Remove unrelated comment 2020-05-01 13:46:22 +02:00
gardena mips: mtmips: enable SPL for all boards 2020-04-27 20:30:13 +02:00
gateworks/gw_ventana common: Move hang() to the same header as panic() 2020-01-24 23:06:49 +05:30
gdsys common: Move hang() to the same header as panic() 2020-01-24 23:06:49 +05:30
ge doc: update reference to README.imximage 2020-04-16 23:06:54 -04:00
geekbuying/geekbox rockchip: rk3368: Migrate to use common board file 2019-07-29 10:27:48 +08:00
google dm: core: Require users of devres to include the header 2020-02-05 19:33:46 -07:00
grinn common: Move some board functions out of common.h 2019-12-02 18:25:21 -05:00
gumstix common: Move serial functions out of common.h 2019-12-02 18:23:11 -05:00
highbank common: Move some cache and MMU functions out of common.h 2019-12-02 18:23:55 -05:00
hisilicon dm: core: Drop the inclusion of linux/compat.h in dm.h 2020-02-05 21:48:22 -07:00
huawei/hg556a
ids/ids8313 common: Move RAM-sizing functions to init.h 2020-01-24 23:06:49 +05:30
imgtec mtd: rename CONFIG_NAND -> CONFIG_MTD_RAW_NAND 2019-12-03 23:04:10 -05:00
intel board: intel: agilex: Add socdk board support for Intel Agilex SoC 2020-01-07 14:38:33 +01:00
inversepath/usbarmory common: Move RAM-sizing functions to init.h 2020-01-24 23:06:49 +05:30
iomega/iconnect
is1
isee dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
k+p imx: pmic: Set proper pmic name for iMX53 HSC|DDC boards 2020-04-18 13:08:34 +02:00
keymile ARM: socfpga: Add initial support for the ABB SECU board 2020-03-03 22:11:36 +01:00
kmc/kzm9g common: Move reset_cpu() to the CPU header 2020-01-24 23:06:49 +05:30
kobol/helios4 board: mvebu: drop unused ETH_PHY macro definitions 2019-01-21 11:39:50 +01:00
kosagi/novena common: Move clock functions into a new file 2020-01-24 23:06:48 +05:30
l+g/vinco common: Move RAM-sizing functions to init.h 2020-01-24 23:06:49 +05:30
LaCie common: Move reset_phy() to net.h 2020-01-24 23:06:48 +05:30
laird common: Move RAM-sizing functions to init.h 2020-01-24 23:06:49 +05:30
lego/ev3 ARM: legoev3: convert to driver model 2019-07-13 11:11:28 -04:00
lg/sniper env: Move env_set() to env.h 2019-08-11 16:43:41 -04:00
liebherr arm: xea: spl: Add GPIO0_0 setup on spl_board_init 2020-02-09 14:59:16 +01:00
logicpd ARM: imx6q_logic: Cleanup boot sequence check 2019-12-27 14:30:52 +01:00
Marvell common: Move reset_phy() to net.h 2020-01-24 23:06:48 +05:30
maxbcm arm: mvebu: AXP: Enhance PCIe port capability configuration 2019-04-12 07:04:18 +02:00
mediatek mips: mtmips: add support for mt7628-rfb 2020-04-27 20:30:13 +02:00
menlo/m53menlo doc: update reference to README.imximage 2020-04-16 23:06:54 -04:00
microchip dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
mikrotik/crs305-1g-4s arm: mvebu: Avoid generating kwbimage.cfg in the source tree 2019-10-29 16:17:36 -04:00
mini-box/picosam9g45 common: Move RAM-sizing functions to init.h 2020-01-24 23:06:49 +05:30
mpc8308_p1m common: Move RAM-sizing functions to init.h 2020-01-24 23:06:49 +05:30
mqmaker/miqi_rk3288 rockchip: board: rk3288: remove board_boot_order() 2019-07-20 23:59:44 +08:00
mscc common: Move some board functions out of common.h 2019-12-02 18:25:21 -05:00
netgear bmips: correct name characters 2019-10-25 17:20:43 +02:00
nokia/rx51 env: Move env_set() to env.h 2019-08-11 16:43:41 -04:00
novtech/meerkat96 meerkat96: fix typo in MAINTAINERS email address 2020-01-25 12:04:36 -05:00
nvidia ARM: tegra: Add NVIDIA Jetson Nano Developer Kit support 2020-04-02 14:30:02 -07:00
olimex/mx23_olinuxino
opalkelly/zynq arm: zynq: Remove low level UART setting 2020-01-14 09:05:53 +01:00
overo dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
pandora
phytec doc: update reference to README.imximage 2020-04-16 23:06:54 -04:00
phytium/durian common: Move reset_cpu() to the CPU header 2020-01-24 23:06:49 +05:30
pine64/rockpro64_rk3399 rockchip: rk3399: split rockpro64 out of evb_rk3399 2019-11-17 17:22:53 +08:00
ppcag/bg0900
qca mips: add initial support for qca956x referenced board 2019-04-12 17:32:50 +02:00
qemu-mips
qualcomm MAINTAINERS: board: qcom: db820c: update email 2020-01-30 13:30:35 -05:00
quipos/cairo
radxa
raidsonic/ib62x0
raspberrypi/rpi rpi: Enable DRAM bank initialization on arm64 2019-12-11 10:14:12 +01:00
renesas ARM: dts: rmobile: Synchronize Gen3 DTs with Linux 5.6.2 2020-04-28 21:34:51 +02:00
rockchip rockchip: evb-rv1108: Use syscon API to get grf base 2020-03-26 22:58:46 +08:00
ronetix common: Move RAM-sizing functions to init.h 2020-01-24 23:06:49 +05:30
sagem/f@st1704
samsung arm: exynos: Read default MMC device from XOM[7:5] pins 2020-01-28 09:54:05 +09:00
sandbox sandbox: implement ft_board_setup() 2020-04-16 08:07:58 -06:00
sandisk/sansa_fuze_plus
sbc8349 common: Move device-tree setup functions to fdt_support.h 2020-01-24 23:06:48 +05:30
sbc8548 common: Move pci_init_board() out of common.h 2019-12-02 18:25:25 -05:00
sbc8641d common: Move testdram() into init.h 2020-01-24 23:06:49 +05:30
schulercontrol/sc_sps_1
Seagate common: Move reset_phy() to net.h 2020-01-24 23:06:48 +05:30
seco doc: update reference to README.imximage 2020-04-16 23:06:54 -04:00
seeed/linkit-smart-7688
sfr/nb4_ser
siemens doc: update reference to README.imx8image 2020-04-16 23:06:54 -04:00
sifive/fu540 configs: fu540: enable gpio driver 2019-10-18 09:04:08 +08:00
silica/pengwyn common: Move serial functions out of common.h 2019-12-02 18:23:11 -05:00
sks-kinkel/sksimx6 Convert to use fsl_esdhc_imx for i.MX platforms 2019-06-23 14:18:34 +08:00
socrates common: Move testdram() into init.h 2020-01-24 23:06:49 +05:30
softing ARM: imx: vining2000: Properly discern PFUZE100 and PFUZE200 2020-01-20 15:37:23 +01:00
solidrun arm: mvebu: clearfog: Use Pro DT by default 2020-04-14 13:16:42 +02:00
somlabs/visionsom-6ull ARM: imx: mx6ull: Add iMX6ULL VisionSOM SoM and EVK 2020-01-20 15:38:16 +01:00
spear common: Move some board functions out of common.h 2019-12-02 18:25:21 -05:00
sr1500
st board: stm32mp1: correct CONFIG_IS_ENABLED usage for LED 2020-04-15 09:10:12 +02:00
ste/stemmy board: Add new Samsung "stemmy" board based on ST-Ericsson U8500 2020-01-22 17:47:57 -05:00
sunxi sunxi: Add Libre Computer ALL-H5-CC H5 board 2020-01-24 23:13:55 +05:30
Synology common: Move reset_phy() to net.h 2020-01-24 23:06:48 +05:30
synopsys ARC: HSDK-4xD: make init status resistant to U-boot reloading 2020-04-27 11:20:27 +03:00
sysam common: Move testdram() into init.h 2020-01-24 23:06:49 +05:30
syteco/zmx25 common: Move some board functions out of common.h 2019-12-02 18:25:21 -05:00
tbs/tbs2910 board: tbs2910: Convert eth to driver model 2019-10-13 22:49:11 +02:00
tcl/sl50 common: Move some board functions out of common.h 2019-12-02 18:25:21 -05:00
technexion doc: update reference to README.imximage 2020-04-16 23:06:54 -04:00
technologic common: Move RAM-sizing functions to init.h 2020-01-24 23:06:49 +05:30
terasic
theadorable common: Move some board functions out of common.h 2019-12-02 18:25:21 -05:00
theobroma-systems dm: core: Rename ofnode_get_chosen_prop() 2020-02-05 19:33:45 -07:00
ti board: ti: README: Update OP-TEE binary name 2020-03-06 12:53:08 +05:30
timll dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
topic/zynq xilinx: Introduce board_late_init_xilinx() 2020-04-27 13:57:17 +02:00
toradex board: apalis_imx6: Add KSZ9131 phy skew settings 2020-05-01 13:46:22 +02:00
tplink/wdr4300
tqc Merge branch 'master' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx 2020-04-20 08:45:27 -04:00
udoo common: Move some board functions out of common.h 2019-12-02 18:25:21 -05:00
vamrs/rock960_rk3399 rockchip: rk3399: Migrate to use common board file 2019-07-29 10:27:48 +08:00
variscite/dart_6ul Convert to use fsl_esdhc_imx for i.MX platforms 2019-06-23 14:18:34 +08:00
varisys common: Move device-tree setup functions to fdt_support.h 2020-01-24 23:06:48 +05:30
ve8313 common: Move RAM-sizing functions to init.h 2020-01-24 23:06:49 +05:30
vocore/vocore2 mips: Add support for SoM "VoCore2". 2020-04-27 20:30:14 +02:00
vscom/baltos mtd: rename CONFIG_NAND -> CONFIG_MTD_RAW_NAND 2019-12-03 23:04:10 -05:00
wandboard wandboard: Print the board version in board_late_init() 2020-04-18 12:59:59 +02:00
warp doc: update reference to README.imximage 2020-04-16 23:06:54 -04:00
warp7 doc: update reference to README.imximage 2020-04-16 23:06:54 -04:00
work-microwave/work_92105 common: Move some board functions out of common.h 2019-12-02 18:25:21 -05:00
xes common: Move pci_init_board() out of common.h 2019-12-02 18:25:25 -05:00
xilinx xilinx: Move bootmode detection to separate function 2020-04-27 13:57:18 +02:00
zyxel/nsa310s common: Move reset_phy() to net.h 2020-01-24 23:06:48 +05:30