Linux Changes


Module Name
Driver Location
Changes
Link
Linux kernel
Linux kernel source
  • Upgrade to 4.14
>
https://kernelnewbies.org/Linux_4.14
Ethernet driver (GEM)
drivers/net/ethernet/cadence/macb_main.c
drivers/net/ethernet/cadence/macb_ptp.c
  • Add clock management for tsu-clk
  • Add WOL support for ZynqMP
  • Use mainline implementation of 64 bit addressing
  • Use mainline implementation of PTP support
http://www.wiki.xilinx.com/Macb+Driver
Axi Ethernet Driver
drivers/net/ethernet/xilinx/xilinx_axienet_main.c
drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c
drivers/net/ethernet/xilinx/xilinx_axienet.h
  • Add support for USXGMII
http://www.wiki.xilinx.com/Linux+AXI+Ethernet+driver
Xilinx Soft IP DMA driver
drivers/dma/xilinx/xilinx_dma.c
  • Program hardware supported buffer length in AXIDMA
  • Refactor axidma channel allocation
  • Enable VDMA S2MM vertical flip support
  • Fix kernel-doc warnings and coding style issues
http://www.wiki.xilinx.com/DMA+Drivers+-+Soft+IPs
VDMA test client driver
drivers/dma/xilinx/vdmatest.c
  • Add hsize and vsize module parameter
  • Use octal permissions '0444' for module parameter
http://www.wiki.xilinx.com/DMA+Drivers+-+Soft+IPs
Emaclite ethernet driver
drivers/net/ethernet/xilinx/xilinx_emaclite.c
  • Fix coding style
  • Trivial code cleanup
http://www.wiki.xilinx.com/Linux+Emaclite+Driver
PM driver
drivers/soc/xilinx/zynqmp/
  • Replaced old PM driver(drivers/soc/xilinx/zynqmp/pm.c) with new driver(drivers/soc/xilinx/zynqmp/power.c). Power.c now only contains power management related functions. Earlier pm.c had some platform management functions which are now moved to firmware interface.
  • Power Management driver now uses mailbox for receiving PM callbacks from firmware instead of registering IPI interrupt handler.
  • Changed Sysfs/debugfs paths and their usage
  • Change in device tree bindings
    • Removed "xlnx,zynqmp-pm" binding and replaced with new binding("xlnx,zynqmp-power") for power management driver
    • Replaced IPI interrupt properties with mailbox properties
http://www.wiki.xilinx.com/Zynq+UltraScale%EF%BC%8B+MPSoC+Power+Management+-+Linux+Kernel
Firmware driver
drivers/firmware/xilinx/zynqmp/
  • Replaced old firmware interface (drivers/soc/xilinx/zynqmp/firmware.c) with new firmware interface(drivers/firmware/xilinx/zynqmp/*)
  • Extracted firmware interface part from old PM driver(drivers/soc/xilinx/zynqmp/pm.c) to firmware driver.
  • Removed MMIO interface(AR 71089)
  • Added sysfs to set shutdown scope
  • Extracted firmware related property from old PM binding and created separate DT binding for ZynqMP firmware("xlnx,zynqmp-firmware")
ZynqMP firmware driver
Pin control driver
drivers/pinctrl/pinctrl-zynqmp.c
  • Request pin information from firmware instead of registering hard coded pin information in driver
  • Use firmware interface APIs to control/configure pins
  • Change in device tree binding
    • Removed "xlnx,pinctrl-zynqmp" binding and replaced with new "xlnx,zynqmp-pinctrl" binding
http://www.wiki.xilinx.com/ZynqMP+Linux+Pin+Controller+Driver
Common Clock Framework
drivers/clk/zynqmp/clkc.c
  • Request clock information from firmware instead of registering hard coded clocks in driver
  • Use firmware APIs to control clocks
  • Change in device tree binding
    • Removed "xlnx,zynqmp-clkc" binding and replaced with new "xlnx,zynqmp-clk" binding
http://www.wiki.xilinx.com/Common+Clock+Framework
SHA
drivers/crypto/zynqmp-sha.c
  • Replaced MMIO read/write with new firmware APIs
http://www.wiki.xilinx.com/SHA%20Driver
RSA
drivers/crypto/zynqmp-rsa.c
  • Replaced MMIO read/write with new firmware APIs

QSPI
drivers/spi/spi-zynqmp-gqspi.c
  • Replaced MMIO read/write with new firmware APIs
http://www.wiki.xilinx.com/Linux%20ZynqMP%20GQSPI%20Driver
ZynqMP Serdes/GT
drivers/phy/phy-zynqmp.c
  • Updated the driver to reinitialize gt lane for USB only if required
  • Updated the driver to use EEMI framework for performing ULPI reset sequence
  • Replaced MMIO read/write with new firmware APIs
http://www.wiki.xilinx.com/Zynq+Ultrascale+MPSOC+Linux+SIOU+driver
Zynq Ultrascale+ MPSOC USB
drivers/usb/dwc3/
  • Added code for supporting entering into D3 state during suspend
  • Put usb core in reset after entering D3 state
  • Updated driver to 4.14 kernel
  • Add hibernation support when operating in gadget mode
  • Add support for enabling/disabling hibernation dynamically
  • Don't return error when phy is not found
  • Don't wait for end transfer to finish for isoc endpoints
  • Fix the broken suspend/resume functionality in dwc3
  • In OTG mode don't clear event buffers when changing to Host mode
  • Added support for stopping ISOC transfers before starting a new ISOC transfer
http://www.wiki.xilinx.com/Zynq+Ultrascale+MPSOC+Linux+USB+device+driver
Tap Delay
drivers/soc/xilinx/zynqmp/tap_delays.c
  • Replaced MMIO read/write with new firmware APIs

FPGA Manager/ZynqMP PL programming
drivers/fpga/zynqmp-fpga.c
  • Replaced MMIO read/write with new firmware APIs
http://www.wiki.xilinx.com/Solution+ZynqMP+PL+Programming
Nvmem-
SoC revision read mechanism
drivers/nvmem/zynqmp_nvmem.c
  • Replaced MMIO read/write with new firmware APIs
http://www.wiki.xilinx.com/Solution%20ZynqMP%20SoC%20revision%20read%20mechanism
ZynqMP R5 remoteproc driver
drivers/remoteproc/zynqmp_r5_remoteproc.c
  • Replaced MMIO read/write with new firmware APIs

ZynqMP power domain driver
drivers/soc/xilinx/zynqmp/pm_domains.c
  • Replaced MMIO read/write with new firmware APIs

Reset-Controller
drivers/reset/reset-zynqmp.c
  • Replaced MMIO read/write with new firmware APIs
http://www.wiki.xilinx.com/Zynqmp%20Linux%20Reset-controller%20Driver
ZynqMP IPI mailbox driver
drivers/mailbox/zynqmp-ipi-mailbox.c
  • Implement the IPI driver under the Linux kernel mailbox framework
    • Use the IPI hardware core as a mailbox.
    • One message at a time, that is there will be no message sent until the previous message in the mailbox has been taken by the receiver.
    • Use the 32 bytes IPI buffer for the content of the message, and use the IPI registers for notification.
Xilinx ZynqMP IPI Mailbox Driver
Zynq and ZynqMP SD Controller
drivers/mmc/host/sdhci-of-arasan.c
  • Added Runtime PM support
http://www.wiki.xilinx.com/SD%20controller
System Monitor
drivers/iio/adc/xilinx-ams
  • Add support to read voltages from AMS control block
http://www.wiki.xilinx.com/ZynqMP%20AMS
EDAC
drivers/edac/synopsys_edac.c
  • Add Memory mapping, 16bit row mode and video buffer mode support
http://www.wiki.xilinx.com/EDAC%20Driver
http://www.wiki.xilinx.com/ZynqMP%20OCM%20EDAC%20Driver

Linux Bug Fixes
Module Name
Driver Location
Bug Fixes
Link
Ethernet driver (GEM)
drivers/net/ethernet/cadence/macb_main.c
drivers/net/ethernet/cadence/macb_ptp.c
  • Fix and improve suspend/resume by adding phy suspend/resume, rx mode settings and PTP add/remove
  • Update macb RX tie-off descriptor
  • Remove unnecessary DBW read back from NWCFG
http://www.wiki.xilinx.com/Macb+Driver
Axi Ethernet driver
drivers/net/ethernet/xilinx/xilinx_axienet_main.c
drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c
drivers/net/ethernet/xilinx/xilinx_axienet.h
  • Updated interrupt-names property with ip interrupt naming convention
http://www.wiki.xilinx.com/Linux%20AXI%20Ethernet%20driver
Xilinx Soft IP DMA driver
drivers/dma/xilinx/xilinx_dma.c
  • Free BD consistent memory in channel free_chan_resources
http://www.wiki.xilinx.com/DMA+Drivers+-+Soft+IPs
VDMA test client driver
drivers/dma/xilinx/vdmatest.c
  • Fix VDMA hang reported in certain resolutions
http://www.wiki.xilinx.com/DMA+Drivers+-+Soft+IPs
Emaclite Ethernet driver
drivers/net/ethernet/xilinx/xilinx_emaclite.c
  • Fix MDIO bus unregister bug on repetitive module load and unload.
http://www.wiki.xilinx.com/Linux+Emaclite+Driver
ZDMA driver
drivers/dma/xilinx/zynqmp_dma.c
  • Fixed race condition in the probe, Incase of interrupt property is not present, driver is trying to free an invalid free.
http://www.wiki.xilinx.com/Zynqmp+DMA


DTG Feature Changes

Module Name
Feature Changes
Link
Generic
Clock support in the DTG
http://www.wiki.xilinx.com/DTG+Common+clock+framework
TSN IP
TSN IP driver support
http://www.wiki.xilinx.com/TSN+IP+driver+support+in+DTG
Generic
Add the placeholder comment for generic drivers
https://github.com/Xilinx/device-tree-xlnx/commit/2cb30975c26dd879d81793fb75d234761681c166
Generic
Added support for interrupt name property
https://github.com/Xilinx/device-tree-xlnx/commit/8679339fd0e1fee45b35ef978ce4af2aa4bc5141



DTG Bug Fixes
Module Name
Bug Fixes
Link
Generic
Fix the reg property if this is greater than 32-bits
https://github.com/Xilinx/device-tree-xlnx/commit/d8c43b3f11685dc66c37d3d732ec78d44ba213b6
mig_7series
Update the ddr4 if it has more memory ranges
https://github.com/Xilinx/device-tree-xlnx/commit/7e0fd7c255c9d31c6f0abce2dad335f0a7a9887c
Generic
Fix the alias support for I2c device
https://github.com/Xilinx/device-tree-xlnx/commit/1cf412b0ce282f66b0e3b15aabff0be7ed220f4d
Generic
Adding support for uartless designs
https://github.com/Xilinx/device-tree-xlnx/commit/2345bb6f68205e39f16a5328e0656fb684bba7f6
axi_vcu
Fix the clock names for vcu based on bindinds
https://github.com/Xilinx/device-tree-xlnx/commit/e4ac516acf5b44f671850f095759e77ce6befd90
usb
Support for USB 2.0 high speed property
https://github.com/Xilinx/device-tree-xlnx/commit/75b9919e349e2a4c97cbf0461a0674b3546d0646
Generic
Check the interrupt controller in get_intr_type
https://github.com/Xilinx/device-tree-xlnx/commit/6f57428485a42d75afbf637c9102cc432bcbed32

Answer Records (ARs)
Module Name
AR Title
AR Link
Ethernet driver (GEM)
2018.1 Zynq UltraScale+ MPSoC: PetaLinux Warm-Restart BSP fails to wakeup Ethernet
https://www.xilinx.com/support/answers/71028.html