= M-Link Data Layer = M-link data layer operates with words of 4 bytes width. == Data Frame Format == ||<:tablewidth="90%">Sync||<:>Type||<:>Length||<:>Seq||<:>Dst||<:>Src||Data||<:>CRC|| ||'''field'''||'''offset'''||'''size'''||'''description'''|| ||Sync||0||2||Sync word. 0x2A, 0x50 = ā€œ*Pā€|| ||Type||2||2||Frame type|| ||Length||4||2||Frame length in 32-bit words. Valid length is 4 ā€“ 511 (data size 0-507)|| ||Seq||6||2||Frame sequence number (counter)|| ||Dst||8||2||Destination Address|| ||Src||10||2||Source Address|| ||Data||12||0-2028||Payload data. 0-507 32-bit words|| ||CRC||last||4||CRC32|| Field offset and size in bytes. Data flow: for each endpoint, SEND is what endpoint is sending == Data Frame Types == ||'''type'''||'''description'''||'''data format'''|| ||0x0100||Run mode data||<:>application specific|| ||0x0101||Register R/W request||<:|2>[[Frame_101_102]]|| ||0x0102||Register R/W response|| ||0x0103||Status response||<:>application specific|| ||0x0105||RAM R/W request||<:|2>[[Frame_105_106]]|| ||0x0106||RAM R/W response|| ||0x0107||Configuration EEPROM R/W request||<:|2>[[Frame_107_108]]|| ||0x0108||Configuration EEPROM R/W response|| ||0x0110||FVME run mode data||[[VmeDaqRawdataFormat]]|| ||0x0111||FVME request||<:|2>[[Frame_111_112]]|| ||0x0112||FVME response|| ||0x1001||JTAG single op request||<:|4>[[Frame 1001-1004]]|| ||0x1002||JTAG single op reply|| ||0x1003||JTAG shift 32 request|| ||0x1004||JTAG shift 32 reply|| ||0x5A5A||Loopback Test||<:>any data|| ||0x5354||Stream data||<:>[[MStream]]|| == Reserved Addresses == ||'''address'''||'''description'''|| ||0xFEFE||point-to-point|| ||0xFDFD||PCIe carrier board|| ---- [[CategoryMlink|MLink]]