[TASK] Add cmake configuration files for Zynq Xilinx ARM

- Add toolchain file for Xilinx ARM EABI
- Add cmake support for Xilinx ARM bare-metal

Change-Id: I301574e4d2588fc2da11efa30567ba9d0c08ab33
Signed-off-by: Joerg Zelenka <joerg.zelenka@br-automation.com>
[TASK] Add Eclipse files for Xilinx ARM SDK

Change-Id: I5260e840ebd05d30ae9882f601be28bab65ca075
Signed-off-by: Joerg Zelenka <joerg.zelenka@br-automation.com>
[TASK] Update BSP and bitstream to support Zynq

- Update BSP generation marco to add optional bootloader compilation.
- Add installation steps for additional files required for Zynq
  platforms.

Change-Id: I5578602ccd46cc9898cefb292e1d16323b9aedd5
Signed-off-by: Joerg Zelenka <joerg.zelenka@br-automation.com>
[FEATURE] Add Xilinx ARM target system

- Modify targetsystem.h to include dependencies and compiler support
  for target Xilinx ARM
- Add stack support files for target Xilinx ARM

Change-Id: I254f69f5b95ad54ca690825eae461c3e7d1a5592
Signed-off-by: Joerg Zelenka <joerg.zelenka@br-automation.com>
[FEATURE] Add benchmark support for Xilinx ARM

Add benchmark support for Xilinx ARM using GPIO IP-Core in FPGA part of
Zynq.

Change-Id: I7176f2ccb9bb32be414e118cf75bd0a8630b7b64
Signed-off-by: Joerg Zelenka <joerg.zelenka@br-automation.com>
[FEATURE] Add Xilinx Zynq MN design for Z702 board

This Xilinx Zynq MN design uses a Microblaze soft-core for the kernel
and ARM core 0 for the user layer.

- Add XPS project files
- Add SDK support files for PS and Microblaze (PL)

Note: The file in sdk/system.xml overwrites the XPS generated file to
      workaround a Xilinx tool bug (XPS 14.7).

Change-Id: I1c6801573ce7aac275beff4bfef984f73be4cc7b
Signed-off-by: Joerg Zelenka <joerg.zelenka@br-automation.com>
[FEATURE] Add UART redirection module for ZC7020 board

- Add board specific Microblaze uart module
- Update stack daemon application cmake build to link to uart module
- Update target-microblaze.c to include uart dummy initialization

Change-Id: I0b6b2783bcb9befbd03ec46f84e967e38ca1af0f
Signed-off-by: Joerg Zelenka <joerg.zelenka@br-automation.com>
[FEATURE] Add dual processor lib using shared memory

This library is designed for systems where the user and kernel layer
of openPOWERLINK run on different processors and shared memory
is used as the interface between the two processors.

The dual processor library requires the hardware to support two types
of memory: Common and dynamic memory.

The common memory can be used for exchanging status, errors, states
etc. and is used for creating dynamic memory mapping table used to
share the address for dynamically allocated shared memories.

Dynamic memory can be allocated at run time by any one of the processor
and these addresses are made available to the other processor through
the dynamic memory mapping table.

The library also provides support for handling interrupts for such
systems.

Change-Id: If6977cd52670480785c5c2c029f59f0bf780a187
Signed-off-by: Joerg Zelenka <joerg.zelenka@br-automation.com>
[FEATURE] Add CAL for dualprocshm library for no OS

Implement CAL for dual processor library (dualprocshm) for targets
without any OS.

Change-Id: Ia4248c359a207cd4e7727d350e5c78e6727c39ac
Signed-off-by: Joerg Zelenka <joerg.zelenka@br-automation.com>
[FEATURE] Add generic MN stack libraries for dualprocshm CAL

- Add cmake stack library project files to compile MN with dual
  processor shared memory interface.
- Add configuration for Xilinx ARM and Microblaze

Change-Id: Ib29b2de6b3220e918957422b44fbf93e838a8870
Signed-off-by: Joerg Zelenka <joerg.zelenka@br-automation.com>
[FEATURE] Add SD FAT16 file system access library

This library provides a file system support to allow an application
running on ARM core of Zynq accessing files (CDC) on a SD CARD.
Note: Please refer to readme.md for this library license information!

Change-Id: I388103366822c5a4af8025d11616b7d73f5ea488
Signed-off-by: Joerg Zelenka <joerg.zelenka@br-automation.com>
[FEATURE] Add Zynq FSBL cmake project

The Zynq first stage bootloader (FSBL) uses boot.bin file placed
on a FAT32 SDCARD initializing host and pcp binaries in the DDR memory.

The bootloader code is part of Xilinx install directory and is
imported and built through cmake for openPOWERLINK demos on Zynq.

Change-Id: Ia68440e81c35029a6cb3b3ba33f57b501a1289a1
Signed-off-by: Joerg Zelenka <joerg.zelenka@br-automation.com>
[TASK] Revise driver daemon application for Microblaze

Revise driver daemon project to support Microblaze with dualprocshm
stack libraries.

Change-Id: I3466b6d335a30e5db7af9697d29127c27d908a92
Signed-off-by: Joerg Zelenka <joerg.zelenka@br-automation.com>
[TASK] Revise embedded MN demo for Zynq MN

The demo MN application for target Zynq SoC uses dual processor
stack library.
The application for Zynq SoC is modified to use configuration
file (mnobd.cdc) placed on the SD card along with binaries.
- Add common sdcard source for obtaining mnobd.cdc from file system
- Extend embedded MN demo with optional sdcard module
- Add Xilinx ARM configuration

Change-Id: Ib754bd171c420956429c847f955cd793636dac69
Signed-off-by: Joerg Zelenka <joerg.zelenka@br-automation.com>
[FEATURE] Add Xilinx ARM boot image generating tools

Add necessary files to generate boot image for Zynq. The boot image
includes:
- FSBL boot loader
- FPGA bitstream for PL configuration
- ELF for Xilinx ARM
- ELF for Microblaze

Change-Id: I0a8f04dca8036927e047962b3e6c3e799e12dfa7
Signed-off-by: Joerg Zelenka <joerg.zelenka@br-automation.com>
[TASK] Add known issues about Xilinx Zynq MN demo

Add known issues about Xilinx Zynq MN demo.

Change-Id: Ia19b3702961e9aadc52bef55bae3db56e7b25656
Signed-off-by: Joerg Zelenka <joerg.zelenka@br-automation.com>
[TASK] Add Zynq SoC platform documentation

- Add platform documentation for Zynq SoC.
- Update build steps for demos, drivers, hardware and stack
  to compile it for target Xilinx ARM.

Change-Id: I62a2da8fbf8bd11585b840dbec74304e801a5517
Signed-off-by: Joerg Zelenka <joerg.zelenka@br-automation.com>
[FEATURE] Add SD FAT16 file system access library

Change-Id: I35f130ff898f24df05b20b0b6191762f8833b70a