Customers renewing systems from A13 to A25 has seen a byte swap issue :
The HW byte swap has been deprecated as of the A21, with a new design of BARs setup.
By reading the code, it looks like setting VME4L_SwapModeSet( spaceFd, VME4L_HW_SWAP1 ) may have a significant impact on the memory area accessed :
It would make the physical address to point to the local SRAM instead of the remote VME address for A32D32 and A16D16 instead of A24D16
using flag VME4L_SW_ADR_SWAP also prevent to mmap VME memory as vme4l_mmap return invalid argument if the flag is passed.
VME byte swapping functionalities should be checked/redesigned and documentation adapted.
C. Schuster 2021.11.30: Review correct behaviour/supported features of various implementations!
Customers renewing systems from A13 to A25 has seen a byte swap issue :
The HW byte swap has been deprecated as of the A21, with a new design of BARs setup. By reading the code, it looks like setting VME4L_SwapModeSet( spaceFd, VME4L_HW_SWAP1 ) may have a significant impact on the memory area accessed : It would make the physical address to point to the local SRAM instead of the remote VME address for A32D32 and A16D16 instead of A24D16 using flag VME4L_SW_ADR_SWAP also prevent to mmap VME memory as vme4l_mmap return invalid argument if the flag is passed.
VME byte swapping functionalities should be checked/redesigned and documentation adapted.
C. Schuster 2021.11.30: Review correct behaviour/supported features of various implementations!