9bf499ace8
XFI is supported on T4QDS-XFI board, which removed slot3, and four LANEs of serdes2 are routed to a SFP+ cages, which to house fiber cable or direct attach cable(copper), the copper cable is used to emulate the 10GBASE-KR scenario. So, for XFI usage, there are two scenarios, one will use fiber cable, another will use copper cable. For fiber cable, there is NO PHY, while for copper cable, we need to use internal PHY which exist in Serdes to do auto-negotiation and link training, which implemented in kernel. We use hwconfig to define cable type for XFI, and fixup dtb based on the cable type. For copper cable, set below env in hwconfig: fsl_10gkr_copper:<10g_mac_name> the <10g_mac_name> can be fm1_10g1, fm1_10g2, fm2_10g1, fm2_10g2. The four <10g_mac_name>s do not have to be coexist in hwconfig. For XFI ports, if a given 10G port will use the copper cable for 10GBASE-KR, set the <10g_mac_name> of the port in hwconfig, otherwise, fiber cable will be assumed to be used for the port. For ex. if four XFI ports will both use copper cable, the hwconfig should contain: fsl_10gkr_copper:fm1_10g1,fm1_10g2,fm2_10g1,fm2_10g2 For fiber cable: 1. give PHY address to a XFI port, otherwise, the XFI ports will not be available in U-boot, there is no PHY physically for XFI when using fiber cable, this is just to make U-boot happy and we can use the XFI ports in U-boot. 2. fixup dtb to use fixed-link in case of fiber cable which has no PHY. Kernel requests that a MAC must have a PHY or fixed-link. When using XFI protocol, the MAC 9/10 on FM1 should init as 10G interface. Change serdes 2 protocol 56 to 55 which has same feature as 56 since 56 is not valid any longer. Signed-off-by: Shaohui Xie <Shaohui.Xie@freescale.com> Reviewed-by: York Sun <yorksun@freescale.com> |
||
---|---|---|
.. | ||
device-tree-bindings | ||
DocBook | ||
driver-model | ||
SPI | ||
SPL | ||
uImage.FIT | ||
feature-removal-schedule.txt | ||
git-mailrc | ||
I2C_Edge_Conditions | ||
kwboot.1 | ||
mkimage.1 | ||
README.440-DDR-performance | ||
README.ag102 | ||
README.AMCC-eval-boards-cleanup | ||
README.android-fastboot | ||
README.android-fastboot-protocol | ||
README.ARC | ||
README.arm64 | ||
README.arm-caches | ||
README.ARM-memory-map | ||
README.arm-relocation | ||
README.at91 | ||
README.at91-soc | ||
README.atmel_mci | ||
README.atmel_pmecc | ||
README.autoboot | ||
README.AVR32 | ||
README.AVR32-port-muxing | ||
README.b4860qds | ||
README.bedbug | ||
README.bitbangMII | ||
README.blackfin | ||
README.bootmenu | ||
README.bus_vcxk | ||
README.cfi | ||
README.commands | ||
README.commands.itest | ||
README.commands.spl | ||
README.console | ||
README.davinci | ||
README.davinci.nand_spl | ||
README.displaying-bmps | ||
README.dns | ||
README.drivers.eth | ||
README.enetaddr | ||
README.ext4 | ||
README.falcon | ||
README.fdt-control | ||
README.fec_mxc | ||
README.fsl_iim | ||
README.fsl-ddr | ||
README.fsl-hwconfig | ||
README.fuse | ||
README.generic_usb_ohci | ||
README.generic-board | ||
README.gpt | ||
README.hwconfig | ||
README.idma2intr | ||
README.imx5 | ||
README.imx6 | ||
README.imx25 | ||
README.imx27 | ||
README.imx31 | ||
README.imximage | ||
README.iomux | ||
README.JFFS2 | ||
README.JFFS2_NAND | ||
README.kwbimage | ||
README.LED | ||
README.LED_display | ||
README.link-local | ||
README.lynxkdi | ||
README.m68k | ||
README.m54418twr | ||
README.malta | ||
README.marubun-pcmcia | ||
README.memory-test | ||
README.menu | ||
README.mips | ||
README.Modem | ||
README.mpc5xx | ||
README.mpc74xx | ||
README.mpc83xx.ddrecc | ||
README.mpc83xxads | ||
README.mpc85xx | ||
README.mpc85xx-sd-spi-boot | ||
README.mpc85xx-spin-table | ||
README.mpc85xxads | ||
README.mpc85xxcds | ||
README.MPC866 | ||
README.mxc_hab | ||
README.mxc_ocotp | ||
README.mxs | ||
README.mxsimage | ||
README.N1213 | ||
README.nand | ||
README.nand-boot-ppc440 | ||
README.NDS32 | ||
README.ne2000 | ||
README.NetConsole | ||
README.nokia_rx51 | ||
README.OFT | ||
README.omap3 | ||
README.omap-reset-time | ||
README.omap-ulpi-viewport | ||
README.pblimage | ||
README.plan9 | ||
README.POST | ||
README.power-framework | ||
README.ppc440 | ||
README.pxe | ||
README.qemu-mips | ||
README.ramboot-ppc85xx | ||
README.rmobile | ||
README.s5pc1xx | ||
README.sata | ||
README.sched | ||
README.scrapyard | ||
README.semihosting | ||
README.serial_multi | ||
README.sh | ||
README.sh7752evb | ||
README.sh7753evb | ||
README.sha1 | ||
README.silent | ||
README.SNTP | ||
README.socfpga | ||
README.spear | ||
README.SPL | ||
README.splashprepare | ||
README.srio-pcie-boot-corenet | ||
README.standalone | ||
README.switch_config | ||
README.t4240qds | ||
README.TPL | ||
README.trace | ||
README.ubi | ||
README.ublimage | ||
README.unaligned-memory-access.txt | ||
README.update | ||
README.usb | ||
README.vf610 | ||
README.video | ||
README.VLAN | ||
README.VSC3316-3308 | ||
README.vxworks | ||
README.watchdog | ||
README.zfs | ||
README.zynq |
# # Xilinx ZYNQ U-Boot # # (C) Copyright 2013 Xilinx, Inc. # # SPDX-License-Identifier: GPL-2.0+ # 1. About this This document describes the information about Xilinx Zynq U-Boot - like supported boards, ML status and TODO list. 2. Zynq boards Xilinx Zynq-7000 All Programmable SoCs enable extensive system level differentiation, integration, and flexibility through hardware, software, and I/O programmability. * zc70x - zc702 (single qspi, gem0, mmc) [1] - zc706 (dual parallel qspi, gem0, mmc) [2] * zed (single qspi, gem0, mmc) [3] * microzed (single qspi, gem0, mmc) [4] * zc770 - zc770-xm010 (single qspi, gem0, mmc) - zc770-xm011 (8 or 16 bit nand) - zc770-xm012 (nor) - zc770-xm013 (dual parallel qspi, gem1) 3. Building # Configure for zc70x board $ make zynq_zc70x_config Configuring for zynq_zc70x board... # Building default dts for zc702 board $ make # Building specified dts for zc706 board $ make DEVICE_TREE=zynq-zc706 4. Bootmode Zynq has a facility to read the bootmode from the slcr bootmode register once user is setting through jumpers on the board - see page no:1546 on [5] All possible bootmode values are defined in Table 6-2:Boot_Mode MIO Pins on [5]. board_late_init() will read the bootmode values using slcr bootmode register at runtime and assign the modeboot variable to specific bootmode string which is intern used in autoboot. SLCR bootmode register Bit[3:0] values #define ZYNQ_BM_NOR 0x02 #define ZYNQ_BM_SD 0x05 #define ZYNQ_BM_JTAG 0x0 "modeboot" variable can assign any of "norboot", "sdboot" or "jtagboot" bootmode strings at runtime. 5. Mainline status - Added basic board configurations support. - Added zynq u-boot bsp code - arch/arm/cpu/armv7/zynq - Added zynq boards named - zc70x, zed, microzed, zc770_xm010, zc770_xm012, zc770_xm013 - Added zynq drivers: serial - drivers/serial/serial_zynq.c net - drivers/net/zynq_gem.c mmc - drivers/mmc/zynq_sdhci.c mmc - drivers/mmc/zynq_sdhci.c spi- drivers/spi/zynq_spi.c i2c - drivers/i2c/zynq_i2c.c - Done proper cleanups on board configurations - Added basic FDT support for zynq boards - d-cache support for zynq_gem.c 6. TODO - Add zynq boards support - zc770_xm011 - Add zynq qspi controller driver - Add zynq nand controller driver - Add FDT support on individual drivers [1] http://www.xilinx.com/products/boards-and-kits/EK-Z7-ZC702-G.htm [2] http://www.xilinx.com/products/boards-and-kits/EK-Z7-ZC706-G.htm [3] http://zedboard.org/product/zedboard [4] http://zedboard.org/product/microzed [5] http://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf -- Jagannadha Sutradharudu Teki <jaganna@xilinx.com> Sun Dec 15 14:52:41 IST 2013