]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/fx2lafw/dslogic.h
dslogic: Implement trigger functionality
[libsigrok.git] / src / hardware / fx2lafw / dslogic.h
index 54067693087938d352e72e6064c71fde401d2ffa..e6646513c6a40c0db1d1f555227596fbad7ab737 100644 (file)
@@ -32,6 +32,7 @@
 #define DS_START_FLAGS_STOP            (1 << 7)
 #define DS_START_FLAGS_CLK_48MHZ       (1 << 6)
 #define DS_START_FLAGS_SAMPLE_WIDE     (1 << 5)
+#define DS_START_FLAGS_MODE_LA         (1 << 4)
 
 enum dslogic_operation_modes {
        DS_OP_NORMAL,
@@ -54,7 +55,8 @@ struct dslogic_mode {
 struct dslogic_trigger_pos {
        uint32_t real_pos;
        uint32_t ram_saddr;
-       uint8_t first_block[504];
+       uint32_t remain_cnt;
+       uint8_t first_block[500];
 };
 
 /*
@@ -64,7 +66,7 @@ struct dslogic_trigger_pos {
  */
 #define _DS_CFG(variable, wordcnt) ((variable << 8) | wordcnt)
 #define _DS_CFG_PAD(variable, wordcnt) ((_DS_CFG(variable, wordcnt) << 16) | 0xffff)
-#define DS_CFG_START           0xffffffff
+#define DS_CFG_START           0xf5a5f5a5
 #define DS_CFG_MODE            _DS_CFG(0, 1)
 #define DS_CFG_DIVIDER         _DS_CFG_PAD(1, 2)
 #define DS_CFG_COUNT           _DS_CFG_PAD(3, 2)
@@ -82,7 +84,7 @@ struct dslogic_trigger_pos {
 #define DS_CFG_TRIG_COUNT1     _DS_CFG_PAD(29, 16)
 #define DS_CFG_TRIG_LOGIC0     _DS_CFG_PAD(32, 16)
 #define DS_CFG_TRIG_LOGIC1     _DS_CFG_PAD(33, 16)
-#define DS_CFG_END             0x00000000
+#define DS_CFG_END             0xfa5afa5a
 
 struct dslogic_fpga_config {
        uint32_t sync;