[FIX] Fix SDO busy intern after CN reset command

The intermediate state InternalAbort must be left, when SDO connection
is closed after node reset or IdentResponse. Otherwise it remains in
this state and the application isn't allowed anymore to perform SDO
transfers to this CN.

Based on change for V1.8.5 of
Daniel Krueger <daniel.krueger@systec-electronic.com>

Change-Id: Id02ecf47f021af2df2b5249391576d7f0f300f88
[FIX] Fix used interrupt api for Altera IP-Cores

The drivers for openMAC and Host Interface IP-Cores support the enhanced
interrupt api only. This missing definition is added to the *_sw.tcl
files.

Change-Id: I2467d56322a3770b84a6254242b5f45a6cb24b93
[FIX] Fix warnings in openMAC drivers

Solve warnings in openMAC drivers.

Change-Id: I81a1745b56f3af0a2f16f58e64de5b626363681d
[FIX] Fix warnings in host interface SW modules

Solve warnings in host interface software driver and control CAL
modules.

Change-Id: I9f773c835a1f2fc185253ff982e187352a36f045
[FIX] Fix dereferencing warning in pdo CAL

Solve "type-punned pointer will break strict-aliasing rules" warning
due to call of pdokcal_allocateMem with local variable pPdoMem_l.
Instead the call is done with a temporary pointer assigned to
the local variable afterwards.

Change-Id: I10fbfff374688cef5048dcad3dc25f37c55e5d61
[FIX] Fix plkload to correctly handle multiple threads/irqs

For some drivers multiple IRQs and IRQ threads could exist. plkload
is fixed to work correctly even if there are several threads and
interrupts.

Change-Id: I0df74842bc14ea4d725dd59453c721aa97c7dfdf
[FIX]  Reimplement handling of PRes in transition DLL_CT4

Reimplement handling of PRes in transition DLL_CT4 in state
DLL_CS_WAIT_SOC as specified in EPSG 301. This covers the following
situations on CN implementations:
1. Just one SoC from MN is lost, because of EMI for example. So the
   next cycle starts with a PRes instead of SoC.
2. Multiple SoCs and the frames in between were lost, because of short
   cable disconnect for example (but frame timeout didn't occur yet).
   So the next cycle which is received by MN starts with a PRes.
3. A late PRes from another CN is received (PRes between SoA and SoC).
   On this CN this is handled as a loss of SoC, but the next SoC isn't
   actually lost. There is just a wrong PRes on the network.

The latter situation might be the reason why the PRes case has been
commented since the early versions of this stack. Why should one CN
care about mistakes of another CN? The answer is that the POWERLINK
network shall provide a deterministic real-time communication and
errors must not remain undetected.

Futhermore, with this fix we indirectly catch the case that an
openPOWERLINK MN (without further hardware support like frame
timestamps) cannot detect late PRes after the SoA. Now another CN
would increment its Loss-of-SoC error counter and force it to go back
to PreOp1 when the threshold is exceeded. For the user the root cause
of this error is a little bit hard to detect, but the error is unveiled
(if there are at least too CNs in the network).

Based on change for V1.8.4 by
Daniel Krueger <daniel.krueger@systec-electronic.com>

Change-Id: Ib5f41389bf4d43fd116e17a1256da43ceb92f14e
[FIX] Resolve Xilinx cmake filename case issue

This issue occures only on Linux where the case
of files is observed.

Change-Id: I2792b96af57c5c0eba729e11ab6a763bdd134065
[FIX] Add missing openMAC waveforms to documentation

Change-Id: If09aba765f4dac6e0dcc985235a827751db6e20f
[FIX] Fix MN issuing StatusRequest after NMTEnableReadyToOperate

If the MN issues an NMTCommand NMTEnableReadyToOperate the initial and
destination NMT state of the node must be NMT_CS_PRE_OPERATIONAL_2.
Therefore, it is not necessary to issue a StatusRequest frame after
C_NMT_STATE_TOLERANCE cycles monitoring the state change.
This change skips setting up the state change monitoring if the
initial and destination state is NMT_CS_PRE_OPERATIONAL_2.

Resolves: #838

Change-Id: I09bb1bfe7998b323f36a47835926a2a2bcae4c94
[FIX] Fix initialization of process image

The process image is uninitialized until the application
uses it. This may be dangerous, therefore this fix initializes
the process image with 0.

This change is based on change for V1.08.4 from
Romain Naour <romain.naour@openwide.fr>

Change-Id: I9e69dbe6cc66781ce319016430fe4c64206df5fc
[FIX] Fix typos in 00000000_POWERLINK_CiA302-4_MN.xdd

The xdd was unusable with openCONFIGURATOR due to duplicate 0x20
subindexes and missing 0x2E subindexes.

Based on change for V1.08.4 from:
Romain Naour <romain.naour@openwide.fr>

Change-Id: I3477cbb9f5ebae870e5eb76ec7c9b20e01a44d18
[FIX] Fix access rights in obdmacro.h

This fix changes access rights for sub-index 0 for macro
OBD_RAM_INDEX_RAM_ARRAY_ALT and OBD_RAM_INDEX_RAM_PDO_MAPPING.
This is necessary to set storage attribute (e.g. kEplObdAccSRW) for
sub-index 0 too. It is needed if store/restore support is
implemented.

The change is based on change for V1.08.4 from
Daniel Krueger <daniel.krueger@systec-electronic.com>

Change-Id: Ib95ce216eb31874d607b5cd6f04c8e27eef60edc
[TASK] Extend PDO mapping subindexes (objects 0x16xx and 0x1Axx)

The mapping objects in 0x16xx and 0x1Axx are extended up to 0xFE.
This is done by replacing the discrete subindex definition with
macro OBD_RAM_INDEX_RAM_PDO_MAPPING.

The commit fixes errors with big configurations where more than 40
objects per CN are mapped.

The change is based on change for V1.08.4 from
Romain Naour <romain.naour@openwide.fr>
Daniel Krueger <daniel.krueger@systec-electronic.com>

Change-Id: Ifaacf1be3f4b6390eaa82321c0955f1fe9e9866e
[FIX] Fix 8255x Edrv NULL pointer crash

- Modify pci_unmap_single function to free temporary address
  of the dma buffer instead of NULL address.
- Initialize TailTxDesc and HeadTxDesc to zero to avoid corruption.
- Set up Rx filtering for local MAC after the mac address
  initialization to accept unicast packets directed to local MAC.
This change is based on the fix for null pointer issue in V1.08.5

Signed-off-by: Avinash Alfred <avinash.a@kalycito.com>

Josef Baumgartner <josef.baumgartner@br-automation.com>
- Clean up coding style issues

Signed-off-by: Josef Baumgartner <josef.baumgartner@br-automation.com>

Change-Id: Ie74e1fdc0067c70f12067d9a35f20623c8bd99ab
[FIX] Add missing definitions in debugstr.c

Change-Id: Iaddedb6d9bb84b237c1a23d495aaf6bad1d64251
[TASK] Add additional documention about NOTFOUND CMake error

Change-Id: Iac34ab5b8a035989f48bb17896472677676cd885
[FIX] Fix shutdown behaviour if kernel initialization fails

If edrv_init() fails and the startup is aborted, the shutdown of some
modules can cause crashes.

If there is an error on startup before dllucal_init() is called,
the function pointers will not be set. Therefore a call to
dllucal_exit() causes a crash. Now, the function pointers will
be checked before calling them.
dllkcal_exit() now also checks pointers before accessing it.

eventkcal-linuxkernel.c only waits for the eventThread to terminate
if it was really created.

Change-Id: Ic1ecf66e1117101b053924a031a5d1e24f13c5cd
[FIX] Revert fix for MN allocates async slot to itself

Revert commit:
SHA-1 "54fde90581dd4b188689e63230555daaaad7a0ab" with message header
"[FIX] MN allocates asynchronous slot to itself but sends no message".

Note: The bug is fixed with the next commit that revises the async slot
allocation.

Change-Id: Ia6633060b3bbec8f84e31006e9e23b766d9af57c
[TASK] Revise MN asynchronous slot self-invitation

The MN only assigns the asynchronous slot to itself if the 
corresponding asynchronous Tx buffer is ready. Hence, the invitation 
is not reverted within the SoA packet buffer.

The change is based on change for V1.08.3 from
Joerg Zelenka <joerg.zelenka@br-automation.com>

Change-Id: Ib83b27881e64baa1259b0b399bb61dc5f364ab60