Quantcast
Channel: Xilinx Wiki : Xilinx Wiki - all changes
Viewing all 11776 articles
Browse latest View live

Linux I2C Driver

$
0
0
...
ChangeLog
2016.3
NANone
Related Links
Linux I2C Aardvark

Linux GPIO Driver

$
0
0

Zynqmp DMA

$
0
0
This
ZYNQMP DMA Linux Driver for Zynq Ultrascale+ MPSoC
Introduction
This
page gives
...
Linux distribution and in open source linux as drivers/dma/xilinx/zynqmp_dma.c
About IP

Xilinx ZynqMP
...
memory transfers.
ZynqMP

ZynqMP
Ultrascale has
...
DMA .
One
One located in
Total 16 DMA channels (8 GDMA + 8 ADMA) are available.
Features:
Primay AXI bus width
Features supported
Memory to Memroy transfers are
support of 128, 64
Optional Scatter/Gather

Scatter Gather
(SG) DMA support. When Scatter/gather mode is not selected the IP operates in Simple DMA mode.
Optional overfetch support.
transfer are support In Linked List Configuration
Optional descriptor's coherence.
AXI QOS bits and AXI cache bits can be configured optional for descriptors fetch and data read/write.
Optional AXI burst length is supported for both DST and SRC side. Supported values are only power of 2 i.e 1,2,4,8 and 16
KernelKnown Issues and Limitations
No support for flow control mode.
No support for linear and hybrid descriptor modes
No Support for Simple DMA mode
Work tobe done
Add support for Simple DMA mode
Add support for linear and hybrid descriptor modes
Kernel
Configuration Options for Driver
The following config options should be enabled in order to build ZynqMP DMA driver:
config XILINX_ZYNQMP_DMA
...
help
Enable support for Xilinx ZynqMP DMA controller.
The following config options should be enabled inorder to build dmatest client
config DMATEST
tristate "DMA Test client"
help
Simple DMA test client. Say N unless you're debugging a
DMA Device driver.
For testing with multiple scatter gather sources following option should be enabled.
config DMA_ENGINE_RAID

Devicetree
In ZynqMP each channel is treated as independent device so for every channel there should be separate devicetree entry.
...
power-domains = <&pd_adma>;
};
TestingTest Procedure
There is a generic dma test client driver availble here @ https://gitenterprise.xilinx.com/Linux/linux-xlnx/blob/master/drivers/dma/dmatest.c
For more details about how to use this test client find details here @ https://gitenterprise.xilinx.com/Linux/linux-xlnx/blob/master/Documentation/dmaengine/dmatest.txt
Features provided:
Scatter gather data transfer (Linked list) with option of desired number of scatter gather sources.
Slave scatter gather. (Need to be implemented)
Kernel Configuration Options for DMA Test client
Mainline status
The following config options should be enabled inorder to build dmatest client
config DMATEST
tristate "DMA Test client"
help
Simple DMA test client. Say N unless you're debugging a
DMA Device driver.
For testing
current driver availble in the xilinx distribution is in sync with multiple scatter gather sources following option should be enabled.
config DMA_ENGINE_RAID
Known Issues and Limitations
No support for flow control mode.
No support for linear and hybrid descriptor modes
No Support for Simple DMA mode
the open source driver
Change LOG
2016.3

Linux AXI Ethernet driver

$
0
0
...
CONFIG_XILINX_PHY (For testing SGMII/1000Base-x Configuration with PCS/PMA Core)
{axi_ethmenuconfig.PNG}
Device tree node detailsDevicetree
For more details on phy bindings please refer "Documentation/devicetree/bindings/net/phy.txt"
axi_ethernet_eth_buf: ethernet@40c00000 {

Cadence I2C Driver

$
0
0

Cadence I2C Linux driver for Zynq and Zynq Ultrascale+ MPSoC
Introduction

This page provides information about the Cadence I2C driver which can be found on Xilinx Git and mainline as i2c-cadence.c
Zynq has two I2C hard IP. I2C can be used as a master with this linux driver. I2C slave support is yet to be added in the driver.
There is support for repeated start with some limitations.
Mainline status
Cadence I2C driver is currently
Features
Master mode
Support 16 bytes FIFO
Programmable normal and fast bus data rates
Interrupt support
Repeated start support using HOLD bit
FIFO control using HOLD bit
Slave monitoring support
in sync with mainline withMaster mode.
Known issues and limitations
Repeated start after a read transfer is not supported by this controller; a warning is given when this condition is detected by
the exception of slave monitoring support.
Any further changes will be upstreamed.
driver.
The following are the controller errata:
Missing glitch filter ( http://www.xilinx.com/support/answers/61861.html )
I2C Master Generates Invalid Read Transactions ( http://www.xilinx.com/support/answers/61664.html )
Missing I2C Master Completion Interrupt ( http://www.xilinx.com/support/answers/61665.html )
Timing requirement violations
http://www.xilinx.com/support/answers/59366.html
http://www.xilinx.com/support/answers/60693.html
http://www.xilinx.com/support/answers/60694.html
I2C Missing Arbitration On Repeated Start ( http://www.xilinx.com/support/answers/60695.html )

Cadence I2C Driver Kernel Configuration
The following config options need to be enabled:
...
};
};
Features
Master mode
Support 16 bytes FIFO
Programmable normal and fast bus data rates
Interrupt support
Repeated start support using HOLD bit
FIFO control using HOLD bit
Known issues and limitations
Repeated start after a read transfer is not supported by this controller; a warning is given when this condition is detected by the driver.
The following are the controller errata:
Missing glitch filter ( http://www.xilinx.com/support/answers/61861.html )
I2C Master Generates Invalid Read Transactions ( http://www.xilinx.com/support/answers/61664.html )
Missing I2C Master Completion Interrupt ( http://www.xilinx.com/support/answers/61665.html )
Timing requirement violations
http://www.xilinx.com/support/answers/59366.html
http://www.xilinx.com/support/answers/60693.html
http://www.xilinx.com/support/answers/60694.html
I2C Missing Arbitration On Repeated Start ( http://www.xilinx.com/support/answers/60695.html )

Testing
This section details i2c tests with various interfaces:
...
2016.3
None
Mainline status
Cadence I2C driver is currently in sync with mainline with the exception of slave monitoring support.
Any further changes will be upstreamed.

Related Links
Linux Drivers

Linux AXI Ethernet driver

$
0
0

...
Linux driver for Driver for Zynq
Introduction
This page gives an overview of Axi Ethernet Linux driver which is available as part of the Linux distribution. Paths, files, links and documentation on this page are given relative to the Linux kernel source tree.

Linux AXI Ethernet driver

$
0
0

...
driver for Microblaze and Zynq and
Introduction
This page gives an overview of Axi Ethernet Linux driver which is available as part of the Linux distribution. Paths, files, links and documentation on this page are given relative to the Linux kernel source tree.

PS UART

$
0
0

UART PS in Linux
Linux DevicetreeFeatures supported
Programmable baud rate generator
64-byte receive and transmit FIFOs
Programmable protocol:° 6, 7, or 8 data bits 1, 1.5, or 2 stop bits
Odd, even, space, mark, or no parity
Parity, framing and overrun error detection
Line-break generation and detection
Interrupts generation
Known Issues and Limitations
None
Work to be done
None
Kernel Configuration OptionsKernel Configuration Options
To enable the uart driver in the linux kernel you either have to integrate it or build it as kernel module (.ko). you can enable it with:
CONFIG_SERIAL_XILINX_PS_UART=y
CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
Devicetree

Here's how the devicetree entry could look like.
uart0: serial@e0000000 {
...
interrupts = <0 27 4>;
};
Enable the kernel driver
To enable the uartlite driver in the linux kernel you either have to integrate it or build it as kernel module (.ko). You can enable it with:
CONFIG_SERIAL_XILINX_PS_UART=y
CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
<span style="font-family: arial,helvetica,sans-serif; font-size: 1.3em; line-height: 1.5;">**kernel logs**</span>
rºªÂ3.749085] ff000000.serial: ttyPS0 at MMIO 0xff000000 (irq = 204, base_baud = 6250000) is a xuartps
ªconsole [ttyPS0] enabled
[ 3.758115] console [ttyPS0] enabled
[ 3.765083] bootconsole [uart0] disabled
[ 3.765083] bootconsole [uart0] disabled
[ 3.773082] ff010000.serial: ttyPS1 at MMIO 0xff010000 (irq = 205, base_baud = 6250000) is a xuartps
[ 3.787228] brd: module loaded

Test logs
root@Xilinx-ZCU102-2015_4:~# cat /proc/tty/driver/xuartps
...
2016.3
tty: serial: xuartps: Wait for rx and tx done status
Mainline status
Any further changes will be upstreamed.

Related Links
Linux Drivers

PS UART

$
0
0

UARTCadence UART PS Linux Driver for Zynq and Zynq Ultrascale+ MPSoC
IntroductionIntroduction
This page gives an overview of the uart-ps driver which is available as part of the Zynq and ZynqMP Linux distribution and
in the mainline.
Paths, files, links and documentation on this page are given relative to the
Linux kernel source tree.
Features supported
Programmable baud rate generator

Linux Emaclite Driver

$
0
0
The purpose of this
AXI EMACLITE Linux driver for Microblaze and Zynq and Zynq Ultrascale+ MPSoC
Introduction
This
page gives an overview of Axi EmacliteLinux driver which is available as part of the xilinx Linux distribution or Open source linux distribution.
Features supported
Media Independent Interface (MII) forconnection
to documentexternal 10/100 Mb/s PHY transceivers
Independent internal 2K byte TX and RX dual port memory for holding data for one packet
Known Issues and Limitations
None
Work tobe done
Validate
the Emaclite driver that ison Zynq Ultrscale+ MPSoc
Kernel Configuration Options
The following config options should be enabled
in order to build the mainline kernel.
Emaclite
Axi Emaclite driver Kernel Configuration:
CONFIG_ETHERNET
CONFIG_NET_VENDOR_XILINX
CONFIG_XILINX_EMACLITE

{emaclitemenuconfig.png}
Devicetree Bindings:
axi_ethernetlite_1: ethernet@40e00000 {
compatible = "xlnx,axi-ethernetlite-3.0", "xlnx,xps-ethernetlite-1.00.a";
...
} ;
} ;
Testing Tools
Testing Tools-Diagnostic and Protocol TestsTesting Tools-Diagnostic and Protocol TestsDiagnostic and Protocol Tests
PING
This utility used to test the reachability of a host on an Internet Protocol(IP) network and to measure the round trip time for messages sent from the originating host to a destination computer
How to Run
ping <Remote IP Address>
Telnet
telnet <Server IP Address>
Pkt Generator
Please refer the below link for how to run and various options
https://www.kernel.org/doc/Documentation/networking/pktgen.txt
Testing Tools-Stress TestTesting Tools-Stress TestStress Test
Iperf with option -d
Run iperf in dual testing mode. This will cause the server to connect back to the client on the port specified in the -L option (or defaults to the port the client connected to the server on). This is done immediately therefore running the tests simultaneously.
./iperf -c <Server IP> -d
Ping flood test
Users can send hundred or more packets per second using -f option. It prints a ‘.’ when a packet is sent, and a backspace is printed when a packet is received
ping -f localhost
Testing Tools-Performance TestsTesting Tools-Performance TestsPerformance Tests
Netperf
More information please refer the below link
http://www.netperf.org/netperf/
How to Run
Server:
netserver
Client:
taskset 2 ./netperf -H <Server IP> -t TCP_STREAM
taskset 2 ./netperf -H <Server IP> -t UDP_STREAM
Iperf
More information please refer the below link
http://en.wikipedia.org/wiki/Iperf
How to Run
Server:
./iperf -s -u
./iperf -s
Client:
./iperf -c <Server IP> -u -b <banwidth>
./iperf -c <Server IP>
Mainline status
The current driver availble in the xilinx Linux distribution is in sync with the open source driver
Change LOG
2016.3
None

Related Links
Linux Drivers

Cadence WDT Driver

$
0
0

Cadence WDT Linux Driver for Zynq and Zynq Ultrascale+ MPSoC
IntroductionIntroductionIntroduction

This page describesgives an overview of the Cadence WDT driver
...
is available in mainlineas part of the Zynq and XilinxZynqMP Linux distribution as drivers/watchdog/cadence_wdt.cand in the mainline.
Paths, files, links and documentation on this page are given relative to the Linux kernel source tree.
Features supported
Configurable timeout interval in seconds.
Reset on timeout can be selected.
Known Issues and Limitations
None
Work to be done
None

Kernel Configuration Options
The following config options should be enabled in order to build the wdt driver:
...
clocks = <&clk100>;
};
Features supported
Configurable timeout interval in seconds.
Reset on timeout can be selected.
Known Issues and Limitations
None

Testing
Start the watchdog timer and see if it runs out without enabling reset.
...
2016.3
None
Mainline status
Any further changes will be upstreamed.

Related Links
Linux Drivers

Cadence WDT Driver

$
0
0

Cadence WDT Linux Driver for Zynq and Zynq Ultrascale+ MPSoC
IntroductionIntroductionIntroductionIntroduction
This page gives an overview of the WDT driver which is available as part of the Zynq and ZynqMP Linux distribution and in the mainline.
Paths, files, links and documentation on this page are given relative to the Linux kernel source tree.

Cadence WDT Driver

$
0
0

Cadence I2C Driver

$
0
0
...
http://www.xilinx.com/support/answers/60694.html
I2C Missing Arbitration On Repeated Start ( http://www.xilinx.com/support/answers/60695.html )
Cadence I2C Driver KernelWork to be done
None
Kernel
Configuration Options
The following config options need to be enabled:
CONFIG_I2C_CADENCE

Zynq UltraScale Plus MPSoC Graphics- GPU application debugging using ARM Mali Graphics Debugger tool

$
0
0
...
copy the Mali interceptor.so and mgddaemon from the SD card to /usr/malidebug by entering following commands on the Linux prompt
$mkdir /usr/malidebug
$cp /media/interceptor.so/media/libinterceptor.so /usr/malidebug
$cp /media/mgddaemon /usr/malidebug
set the soft links for interceptor libraries by entering following commands on the Linux prompt
...
After running the mgddaemon, observer the prints on the Tera term as show in in below figure
{mgddaemon_running.PNG} Fig: MGD daemon running log
Now run the application on the target side
$cd /media
$tri_cube &
Observer the application running on the monitor connected to the boad.

Now open the Mali Graphics Debugger application in host machine .After the application is opened it looks like as shown
{Mali_Debugger_2.PNG} Fig: Mali Graphics debugger
...
BOOT.BIN
image.ub
eglfbdev_gear_applicationtri_cube

Zynq UltraScale Plus MPSoC Graphics- GPU Profiling using ARM Streamline performance analyzer

$
0
0
...
Build the gator.ko module by following below commands
$ cd <Gator_source>/driver
$$bash
$ export <cross compilation path>
$
GATOR_WITH_MALI_SUPPORT=MALI_4xx CONFIG_GATOR_MALI_4XXMP_PATH=<petalinux_project_directory >build/linux/kernel/xlnx-4.4/drivers/staging/mali/DX910-SW-99002-r5p1-01rel0CONFIG_GATOR_MALI_4XXMP_PATH=<petalinux_install_directory>/components/linux-kernel/xlnx-4.4/drivers/staging/mali/DX910-SW-99002-r5p1-01rel0/driver/src/devicedrv/mali/ make -C
...
M=`pwd` ARCH=arm64 modulemodules
Note: In the above command, it is mandatory to use the Petalinux project directory which is created in above section.
After the above steps gator.ko kernel module get created under the <Gator_source>/driver directory.
...
ARM_Streamline_performance_analyzer.zip is extracted as
Design_files
HDF:containsHDF: contains hardware description
Prebuilt_images
BOOT.BIN

Zynq UltraScale Plus MPSoC Graphics- GPU application debugging using ARM Mali Graphics Debugger tool

$
0
0
...
Now run the application on the target side
$cd /media
$tri_cube$LD_PRELOAD=/usr/malidebug/libinterceptor.so tri_cube&
Observer the application running on the monitor connected to the boad.
Now open the Mali Graphics Debugger application in host machine .After the application is opened it looks like as shown

Zynq UltraScale Plus MPSoC Graphics- GPU application debugging using ARM Mali Graphics Debugger tool

$
0
0
...
BOOT.BIN
image.ub
eglfbdev_gear_applicationtri_cube
libinterceptor.so
mgddemon
...
BOOT.BIN
image.ub
eglfbdev_gear_applicationtri_cube
libinterceptor.so
mgddemon

Zynq UltraScale Plus MPSoC Graphics- GPU Profiling using ARM Streamline performance analyzer

$
0
0
...
Replace the system.hdf located at Xilinx-ZCU102-2016.3/subsystems/linux/hw-description/ with the system.hdf file provided in release files and run the following command:
$ petalinux-config --oldconfig
RunReplace the below command under Petalinux project direcotory
$ Petalinux-config –c
rootfs
Configure
configuration file supplied with this tech tip, with the below options and saveconfiguration file under the directory <Petalinux_project_directory>/subsystem/linux/configs/rootfs/config Note: Find the rootfs configuration file
Filesystem Packages → devel → libmali-xlnxà libmali-dev
Filesystem Packages → base → libmali-xlnx -->libmali1
at <Local_directory>/Desing_files/Rootfs_configuration/ directory.
After the above steps run the command shown below to configure the rootfs and save.
$petalinux-config -c rootfs

Add the following configuration options in the file <Petalinux_project_directory>/build/linux/kernel/xlnx-4.4/.config to enable the profiling option and save the file.
CONFIG_PRINTK_TIME=y
...
gatord
gator.ko
eglfbdev_gear_application (Copytri_cube(Copy this application
Installing ARM Streamline performance analyzer tool on windows machine :
In this section goes through the procedure for installing streamline performance analyzer tool on windows machine.
...
Now Run the example eglfbdev_gears_application by following below commands.
$ export DISPLAY=:0.0
$ ./eglfbdev_gears_application./tri_cube&
Observer the application running on the display connected the board.
Now open the ARM DS-5 Streamline performance analyzer tool and provide the target IP address in the box marked in the below shown figure
...
Design_files
HDF: contains hardware description file
Rootfs_configuration: contains root filesystem configuration file
Prebuilt_images
BOOT.BIN
...
gatord
gator.ko
eglfbdev_gears_applicationtri_cube

frame_analysis

Viewing all 11776 articles
Browse latest View live