diff --git a/applications/lofar2/doc/prestudy/desp_howtools_erko.txt b/applications/lofar2/doc/prestudy/desp_howtools_erko.txt
index 57967f561e1dc64a3b53a24721e3a40e139619a3..b23f9fef1919bb23d60e1129c0a5a739e4aa2118 100755
--- a/applications/lofar2/doc/prestudy/desp_howtools_erko.txt
+++ b/applications/lofar2/doc/prestudy/desp_howtools_erko.txt
@@ -6,6 +6,8 @@
 * Latex
 * Markdown
 * Vi
+* Screen to run a terminal session without ssh connection
+* Quartus Qsys IP files in GIT
 
 
 *******************************************************************************
@@ -363,4 +365,163 @@ Table:
 vi
 "Replaced Windows LFCR by Linux LF to avoid ^R at end of line in vi. Removed trailing spaces."
 - in gvim replace \r --> nothing
-- in uex save new file as Linux, save as, menu edit/preferences/line end
\ No newline at end of file
+- in uex save new file as Linux, save as, menu edit/preferences/line end
+
+
+*******************************************************************************
+* Screen to run a terminal session without ssh connection
+*******************************************************************************
+
+https://linuxize.com/post/how-to-use-linux-screen/
+
+screen --version
+
+Basic Linux Screen Usage 
+
+On the command prompt, type screen.
+Run the desired program.
+Use the key sequence Ctrl-a + Ctrl-d to detach from the screen session.
+Reattach to the screen session by typing screen -r.
+
+
+To start a screen session, simply type screen in your console:
+
+screen
+screen -S session_name
+
+This will open a screen session, create a new window, and start a shell in 
+that window. Now that you have opened a screen session, you can get a list of
+commands by typing:
+
+Ctrl+a ?
+
+When you start a new screen session, it creates a single window with a shell
+in it. You can have multiple windows inside a Screen session.
+To create a new window with shell type Ctrl+a c, the first available number
+from the range 0...9 will be assigned to it. Below are some most common
+commands for managing Linux Screen Windows:
+
+Ctrl+a c Create a new window (with shell)
+Ctrl+a " List all window
+Ctrl+a 0 Switch to window 0 (by number )
+Ctrl+a A Rename the current window
+Ctrl+a S Split current region horizontally into two regions
+Ctrl+a | Split current region vertically into two regions
+Ctrl+a tab Switch the input focus to the next region
+Ctrl+a Ctrl+a Toggle between the current and previous region
+Ctrl+a Q Close all regions but the current one
+Ctrl+a X Close the current region
+
+You can detach from the screen session at any time by typing:
+
+Ctrl+a d
+
+The program running in the screen session will continue to run after you detach
+from the session. To resume your screen session use the following command:
+
+screen -r
+
+In case you have multiple screen sessions running on your machine, you will 
+need to append the screen session ID after the r switch.
+To find the session ID list the current running screen sessions with:
+
+screen -ls
+
+There are screens on:
+    10835.pts-0.linuxize-desktop   (Detached)
+    10366.pts-0.linuxize-desktop   (Detached)
+2 Sockets in /run/screens/S-linuxize.
+
+If you want to restore screen 10835.pts-0, then type the following command:
+
+screen -r 10835
+
+When screen is started, it reads its configuration parameters from
+/etc/screenrc and ~/.screenrc if the file is present. We can modify the default
+Screen settings according to our preferences using the .screenrc file.
+Here is a sample ~/.screenrc configuration with customized status line and few
+ additional options:
+
+~/.screenrc
+# Turn off the welcome message
+startup_message off
+
+# Disable visual bell
+vbell off
+
+# Set scrollback buffer to 10000
+defscrollback 10000
+
+# Customize the status line
+hardstatus alwayslastline
+hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'
+Copy
+
+
+*******************************************************************************
+* Quartus Qsys IP files in GIT
+*******************************************************************************
+
+1) Designs without QSYS: unb2b_arp_ping
+Met meld blijkt dat de ip dir van unb2b_arp_ping en unb2b_minimal gelijk zijn
+in de STAT-266 branch. Dat komt omdat je ze gecopieerd hebt en omdat 
+unb2b_arp_ping geen QSYS heeft zijn ze dus ongewijzigd.
+
+Aangezien unb2b_arp_ping geen QSYS heeft, en ook niet zou krijgen, is het 
+beter om de unb2b_arp_ping/quartus/ip dir van unb2_arp_ping te deleten.
+
+2) Designs with QSYS
+Elk design op basis van unb2_minimal heeft zijn eigen QSYS ip files:
+
+> ls $RADIOHDL_WORK/boards/uniboard2b/designs/unb2b_minimal/quartus/ip/qsys_unb2b_minimal
+
+Als een design meer MM ports heeft dan heeft het ook meer ip files, bijv.
+qsys_unb2b_heater_reg_heater.ip voor de unb2b_heater.
+
+Het is kennelijk voor QSYS nodig om naast de .qsys file ook de ip/ files in de
+repository te bewaren. Het is dus ook nodig om ze per design te bewaren, want
+elk design heeft zijn eigen naam en extra MM slaves tov unb2b_minimal.
+
+Echter het blijkt dat een nieuw design ook dezelfde ip/ files als unb2_minimal
+mag gebruiken, dus zonder naamswijziging.
+
+ll $RADIOHDL_WORK/boards/uniboard2b/designs/unb2b_jesd/quartus/
+  ip/
+  qsys_unb2b_jesd.qsys
+    
+ll $RADIOHDL_WORK/boards/uniboard2b/designs/unb2b_jesd/quartus/ip/qsys_unb2b_minimal
+total 2492
+-rw-r--r-- 1 kooistra users 234095 Sep 23 13:01 altjesd_ss_RX_corepll.ip
+-rw-r--r-- 1 kooistra users  16145 Sep 23 13:01 altjesd_ss_RX_frame_reset.ip
+-rw-r--r-- 1 kooistra users  16139 Sep 23 13:01 altjesd_ss_RX_link_reset.ip
+-rw-r--r-- 1 kooistra users 104258 Sep 23 13:01 altjesd_ss_RX_reset_seq.ip
+-rw-r--r-- 1 kooistra users  42930 Sep 23 13:01 altjesd_ss_RX_xcvr_reset_control.ip
+-rw-r--r-- 1 kooistra users  21228 Sep 23 13:01 device_clk.ip
+-rw-r--r-- 1 kooistra users  21226 Sep 23 13:01 frame_clk.ip
+-rw-r--r-- 1 kooistra users 159233 Sep 23 13:01 jesd.ip
+-rw-r--r-- 1 kooistra users  21347 Sep 23 13:01 link_clk.ip
+-rw-r--r-- 1 kooistra users  62203 Sep 23 13:01 qsys_unb2b_minimal_avs_common_mm_0.ip
+-rw-r--r-- 1 kooistra users  62217 Sep 23 13:01 qsys_unb2b_minimal_avs_common_mm_1.ip
+-rw-r--r-- 1 kooistra users 162287 Sep 23 13:01 qsys_unb2b_minimal_avs_eth_0.ip
+-rw-r--r-- 1 kooistra users  21256 Sep 23 13:01 qsys_unb2b_minimal_clk_0.ip
+-rw-r--r-- 1 kooistra users 189801 Sep 23 13:01 qsys_unb2b_minimal_cpu_0.ip
+-rw-r--r-- 1 kooistra users 211623 Sep 23 13:01 qsys_unb2b_minimal_jesd204.ip
+-rw-r--r-- 1 kooistra users  57037 Sep 23 13:01 qsys_unb2b_minimal_jtag_uart_0.ip
+-rw-r--r-- 1 kooistra users  66156 Sep 23 13:01 qsys_unb2b_minimal_onchip_memory2_0.ip
+-rw-r--r-- 1 kooistra users  61818 Sep 23 13:01 qsys_unb2b_minimal_pio_pps.ip
+-rw-r--r-- 1 kooistra users  62201 Sep 23 13:01 qsys_unb2b_minimal_pio_system_info.ip
+-rw-r--r-- 1 kooistra users  60152 Sep 23 13:01 qsys_unb2b_minimal_pio_wdi.ip
+-rw-r--r-- 1 kooistra users  61896 Sep 23 13:01 qsys_unb2b_minimal_reg_dpmm_ctrl.ip
+-rw-r--r-- 1 kooistra users  61896 Sep 23 13:01 qsys_unb2b_minimal_reg_dpmm_data.ip
+-rw-r--r-- 1 kooistra users  62108 Sep 23 13:01 qsys_unb2b_minimal_reg_epcs.ip
+-rw-r--r-- 1 kooistra users  62238 Sep 23 13:01 qsys_unb2b_minimal_reg_fpga_temp_sens.ip
+-rw-r--r-- 1 kooistra users  62277 Sep 23 13:01 qsys_unb2b_minimal_reg_fpga_voltage_sens.ip
+-rw-r--r-- 1 kooistra users  61896 Sep 23 13:01 qsys_unb2b_minimal_reg_mmdp_ctrl.ip
+-rw-r--r-- 1 kooistra users  61896 Sep 23 13:01 qsys_unb2b_minimal_reg_mmdp_data.ip
+-rw-r--r-- 1 kooistra users  62108 Sep 23 13:01 qsys_unb2b_minimal_reg_remu.ip
+-rw-r--r-- 1 kooistra users  62176 Sep 23 13:01 qsys_unb2b_minimal_reg_unb_pmbus.ip
+-rw-r--r-- 1 kooistra users  62163 Sep 23 13:01 qsys_unb2b_minimal_reg_unb_sens.ip
+-rw-r--r-- 1 kooistra users  61818 Sep 23 13:01 qsys_unb2b_minimal_reg_wdi.ip
+-rw-r--r-- 1 kooistra users  62209 Sep 23 13:01 qsys_unb2b_minimal_rom_system_info.ip
+-rw-r--r-- 1 kooistra users  63384 Sep 23 13:01 qsys_unb2b_minimal_timer_0.ip
+
diff --git a/libraries/base/common/src/vhdl/common_mem_pkg.vhd b/libraries/base/common/src/vhdl/common_mem_pkg.vhd
index 902bad7ccbbc5f746dc9f6b76200f1c89d6dca07..70490338cbf26aed3fa288c719bd18b82d671af5 100644
--- a/libraries/base/common/src/vhdl/common_mem_pkg.vhd
+++ b/libraries/base/common/src/vhdl/common_mem_pkg.vhd
@@ -80,6 +80,10 @@ PACKAGE common_mem_pkg IS
   TYPE t_mem_miso_arr IS ARRAY (INTEGER RANGE <>) OF t_mem_miso;
   TYPE t_mem_mosi_arr IS ARRAY (INTEGER RANGE <>) OF t_mem_mosi;
   
+  -- Reset only the control fields of the MM record
+  FUNCTION RESET_MEM_MOSI_CTRL(mosi : t_mem_mosi) RETURN t_mem_mosi;
+  FUNCTION RESET_MEM_MISO_CTRL(miso : t_mem_miso) RETURN t_mem_miso;
+
   -- Resize functions to fit an integer or an SLV in the corresponding t_mem_miso or t_mem_mosi field width
   FUNCTION TO_MEM_ADDRESS(n : INTEGER) RETURN STD_LOGIC_VECTOR;  -- unsigned, use integer to support 32 bit range
   FUNCTION TO_MEM_DATA(   n : INTEGER) RETURN STD_LOGIC_VECTOR;  -- unsigned, alias of TO_MEM_DATA()
@@ -169,6 +173,23 @@ END common_mem_pkg;
 
 PACKAGE BODY common_mem_pkg IS
 
+  -- Reset only the control fields of the MM record
+  FUNCTION RESET_MEM_MOSI_CTRL(mosi : t_mem_mosi) RETURN t_mem_mosi IS
+    VARIABLE v_mosi : t_mem_mosi := mosi;
+  BEGIN
+    v_mosi.rd := '0';
+    v_mosi.wr := '0';
+    RETURN v_mosi;
+  END RESET_MEM_MOSI_CTRL;
+  
+  FUNCTION RESET_MEM_MISO_CTRL(miso : t_mem_miso) RETURN t_mem_miso IS
+    VARIABLE v_miso : t_mem_miso := miso;
+  BEGIN
+    v_miso.rdval       := '0';
+    v_miso.waitrequest := '0';
+    RETURN v_miso;
+  END RESET_MEM_MISO_CTRL;
+
   -- Resize functions to fit an integer or an SLV in the corresponding t_mem_miso or t_mem_mosi field width
   FUNCTION TO_MEM_ADDRESS(n : INTEGER) RETURN STD_LOGIC_VECTOR IS
   BEGIN
diff --git a/libraries/base/dp/src/vhdl/dp_stream_pkg.vhd b/libraries/base/dp/src/vhdl/dp_stream_pkg.vhd
index a9782fa140393c7af419f5965e4d334a17499af0..bf43a639f3c3e81a6cac5e4cbe09b0541341fb6d 100644
--- a/libraries/base/dp/src/vhdl/dp_stream_pkg.vhd
+++ b/libraries/base/dp/src/vhdl/dp_stream_pkg.vhd
@@ -233,6 +233,9 @@ PACKAGE dp_stream_pkg Is
                                SIGNAL   siso_arr        : IN    t_dp_siso_arr;
                                SIGNAL   ready_reg       : INOUT STD_LOGIC_VECTOR);
 
+  -- Reset only the control fields of the DP sosi record
+  FUNCTION RESET_DP_SOSI_CTRL(sosi : t_dp_sosi) RETURN t_dp_sosi;
+
   -- Resize functions to fit an integer or an SLV in the corresponding t_dp_sosi field width
   -- . Use these functions to assign sosi data TO a record field
   -- . Use the range selection [n-1 DOWNTO 0] to assign sosi data FROM a record field to an slv
@@ -455,6 +458,17 @@ PACKAGE BODY dp_stream_pkg IS
   BEGIN
     proc_dp_siso_alert(1, clk, sosi_arr, siso_arr, ready_reg);
   END proc_dp_siso_alert;
+
+  -- Reset only the control fields of the DP sosi record
+  FUNCTION RESET_DP_SOSI_CTRL(sosi : t_dp_sosi) RETURN t_dp_sosi IS
+    VARIABLE v_sosi : t_dp_sosi := sosi;
+  BEGIN
+    v_sosi.sync  := '0';
+    v_sosi.valid := '0';
+    v_sosi.sop   := '0';
+    v_sosi.eop   := '0';
+    RETURN v_sosi;
+  END RESET_DP_SOSI_CTRL;
  
   -- Resize functions to fit an integer or an SLV in the corresponding t_dp_sosi field width
   FUNCTION TO_DP_BSN(n : NATURAL) RETURN STD_LOGIC_VECTOR IS
diff --git a/libraries/base/mm/src/vhdl/mm_pipeline.vhd b/libraries/base/mm/src/vhdl/mm_pipeline.vhd
index 179a3d51adfa85d3b5ed77c5bb1a449a2c50ff24..8a518b18a5e23b97806a778c5471407f0fc10feb 100644
--- a/libraries/base/mm/src/vhdl/mm_pipeline.vhd
+++ b/libraries/base/mm/src/vhdl/mm_pipeline.vhd
@@ -127,10 +127,11 @@ BEGIN
   END GENERATE;
 
   gen_pipeline : IF g_pipeline = TRUE GENERATE
+    --p_reg : PROCESS(mm_rst, mosi_reg, mm_clk)   -- todo: check with synthesis that it is not necessary to have mosi_reg here
     p_reg : PROCESS(mm_rst, mm_clk)
     BEGIN
       IF mm_rst = '1' THEN
-        mosi_reg <= c_mem_mosi_rst;
+        mosi_reg <= RESET_MEM_MOSI_CTRL(mosi_reg);  -- todo: check with synthesis that mosi_reg data fields remain wires
       ELSIF rising_edge(mm_clk) THEN
         mosi_reg <= nxt_mosi_reg;
       END IF;