From 317389b7897ff31500ce80e554fa68f48287e372 Mon Sep 17 00:00:00 2001
From: Eric Kooistra <kooistra@astron.nl>
Date: Tue, 29 Apr 2025 11:02:31 +0200
Subject: [PATCH] Limit dump_start_page and dump_nof_pages to fit
 nof_pages_in_buffer.

---
 .../lofar2/libraries/sdp/src/vhdl/sdp_tbuf_reader.vhd       | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_tbuf_reader.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_tbuf_reader.vhd
index f417a36f52..df2f73a7d7 100644
--- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_tbuf_reader.vhd
+++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_tbuf_reader.vhd
@@ -337,9 +337,15 @@ begin
         v.dump_start_rsn := reg_dump_start_rsn_rw;
         v.dump_start_page := reg_dump_start_page_rw;
         if v.dump_start_page >= c_nof_pages_in_buffer then
+          -- Force to recovery value within buffer range, this will lead to read RSN errors due to mismatch with
+          -- dump_start_rsn.
           v.dump_start_page := 0;
         end if;
         v.dump_nof_pages := reg_dump_nof_pages_rw;
+        if v.dump_nof_pages >= c_nof_pages_in_buffer then
+          -- Limit to buffer size
+          v.dump_nof_pages := c_nof_pages_in_buffer;
+        end if;
         if dump_en = '1' then
           v.latency_cnt := c_start_latency;
           v.fsm := s_dump_start;
-- 
GitLab