2018.1 Linux and DTG Release Notes

2018.1 Linux and DTG Release Notes

 

2018.1 Linux and DTG Release Notes

 


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