summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2026-08-11 17:07:44 +0700
committerhathach <[email protected]>2026-09-04 04:21:57 +0700
commitd2de029fd9def460d66e87fd1088cc49ed0f4574 (patch)
tree758b6e95047333d9bc3709954200be8b8b7f6976
parent95ec96b2962ebe57a43902495fd76e40dfb5558d (diff)
sysview: per-family RTT buffer defaults, 65536 on RAM-rich parts
The dual-role dogfood measured the 4096 fallback losing 96.7% of ISR exit contexts on mimxrt1064_evk and 99.1% on metro_m4_express; a local-board run measured stm32u575nucleo losing ~19% of the whole stream under a 12 s cdc_msc workload. The default was too small for any real capture on fast parts and every user had to rediscover that per board. Families now declare SYSVIEW_BUFFER_SIZE_DEFAULT in family.cmake (the SYSVIEW_RAM_BASE_DEFAULT pattern): imxrt, nrf, rp2040, samd5x_e5x, stm32f4, stm32f7, stm32h7 and stm32u5 set 65536, the measured-safe value. -DSYSVIEW_BUFFER_SIZE still beats everything; small-RAM parts keep the 4096 fallback and their per-board overrides (stm32f072disco's 2048 verified still honoured). lpc55 measured 34 lost events on the same route, an order of magnitude lighter, so it keeps the fallback rather than inheriting a default on thin evidence.
-rw-r--r--hw/bsp/family_support.cmake11
-rw-r--r--hw/bsp/imxrt/family.cmake4
-rw-r--r--hw/bsp/nrf/family.cmake4
-rw-r--r--hw/bsp/rp2040/family.cmake4
-rw-r--r--hw/bsp/samd5x_e5x/family.cmake4
-rw-r--r--hw/bsp/stm32f4/family.cmake4
-rw-r--r--hw/bsp/stm32f7/family.cmake4
-rw-r--r--hw/bsp/stm32h7/family.cmake4
-rw-r--r--hw/bsp/stm32u5/family.cmake4
9 files changed, 42 insertions, 1 deletions
diff --git a/hw/bsp/family_support.cmake b/hw/bsp/family_support.cmake
index 2aac00eb5..adb4cde13 100644
--- a/hw/bsp/family_support.cmake
+++ b/hw/bsp/family_support.cmake
@@ -505,7 +505,16 @@ function(family_configure_common TARGET RTOS)
"(it's a mandatory dependency, fetched regardless of family)")
endif ()
if (NOT DEFINED SYSVIEW_BUFFER_SIZE)
- set(SYSVIEW_BUFFER_SIZE 4096) # overflows under bulk USB load -- raise per board
+ # -DSYSVIEW_BUFFER_SIZE always wins. Otherwise a family may declare its own default
+ # (SYSVIEW_BUFFER_SIZE_DEFAULT in family.cmake, the SYSVIEW_RAM_BASE_DEFAULT pattern):
+ # RAM-rich families set 65536, the dual-role dogfood's measured-safe value -- at the
+ # global 4096 fallback mimxrt1064_evk lost 96.7% of ISR exit contexts at only ~109 Hz.
+ # Small-RAM parts keep the 4096 fallback and override per board (see boards.md).
+ if (DEFINED SYSVIEW_BUFFER_SIZE_DEFAULT)
+ set(SYSVIEW_BUFFER_SIZE ${SYSVIEW_BUFFER_SIZE_DEFAULT})
+ else ()
+ set(SYSVIEW_BUFFER_SIZE 4096)
+ endif ()
endif ()
if (NOT DEFINED SYSVIEW_RAM_BASE)
# A family whose SRAM does not start at the Cortex-M-canonical 0x20000000 (SEGGER's
diff --git a/hw/bsp/imxrt/family.cmake b/hw/bsp/imxrt/family.cmake
index 009b15da3..132e3bd5a 100644
--- a/hw/bsp/imxrt/family.cmake
+++ b/hw/bsp/imxrt/family.cmake
@@ -1,3 +1,7 @@
+# RAM-rich family: SystemView RTT buffer defaults to the dogfood's measured-safe size
+# (-DSYSVIEW_BUFFER_SIZE overrides; see hw/bsp/family_support.cmake and boards.md)
+set(SYSVIEW_BUFFER_SIZE_DEFAULT 65536)
+
include_guard()
set(MCUX_CORE ${TOP}/hw/mcu/nxp/mcuxsdk-core)
diff --git a/hw/bsp/nrf/family.cmake b/hw/bsp/nrf/family.cmake
index fba5e6e69..579716378 100644
--- a/hw/bsp/nrf/family.cmake
+++ b/hw/bsp/nrf/family.cmake
@@ -1,3 +1,7 @@
+# RAM-rich family: SystemView RTT buffer defaults to the dogfood's measured-safe size
+# (-DSYSVIEW_BUFFER_SIZE overrides; see hw/bsp/family_support.cmake and boards.md)
+set(SYSVIEW_BUFFER_SIZE_DEFAULT 65536)
+
include_guard()
set(NRFX_PATH ${TOP}/hw/mcu/nordic/nrfx)
diff --git a/hw/bsp/rp2040/family.cmake b/hw/bsp/rp2040/family.cmake
index 57be416a2..281fa64b6 100644
--- a/hw/bsp/rp2040/family.cmake
+++ b/hw/bsp/rp2040/family.cmake
@@ -1,3 +1,7 @@
+# RAM-rich family: SystemView RTT buffer defaults to the dogfood's measured-safe size
+# (-DSYSVIEW_BUFFER_SIZE overrides; see hw/bsp/family_support.cmake and boards.md)
+set(SYSVIEW_BUFFER_SIZE_DEFAULT 65536)
+
cmake_minimum_required(VERSION 3.13)
include_guard(GLOBAL)
diff --git a/hw/bsp/samd5x_e5x/family.cmake b/hw/bsp/samd5x_e5x/family.cmake
index bb022ab76..4e259ae0a 100644
--- a/hw/bsp/samd5x_e5x/family.cmake
+++ b/hw/bsp/samd5x_e5x/family.cmake
@@ -1,3 +1,7 @@
+# RAM-rich family: SystemView RTT buffer defaults to the dogfood's measured-safe size
+# (-DSYSVIEW_BUFFER_SIZE overrides; see hw/bsp/family_support.cmake and boards.md)
+set(SYSVIEW_BUFFER_SIZE_DEFAULT 65536)
+
include_guard()
include(${CMAKE_CURRENT_LIST_DIR}/boards/${BOARD}/board.cmake)
diff --git a/hw/bsp/stm32f4/family.cmake b/hw/bsp/stm32f4/family.cmake
index 0d3d9ec93..b2aa60973 100644
--- a/hw/bsp/stm32f4/family.cmake
+++ b/hw/bsp/stm32f4/family.cmake
@@ -1,3 +1,7 @@
+# RAM-rich family: SystemView RTT buffer defaults to the dogfood's measured-safe size
+# (-DSYSVIEW_BUFFER_SIZE overrides; see hw/bsp/family_support.cmake and boards.md)
+set(SYSVIEW_BUFFER_SIZE_DEFAULT 65536)
+
include_guard()
set(ST_FAMILY f4)
diff --git a/hw/bsp/stm32f7/family.cmake b/hw/bsp/stm32f7/family.cmake
index d405753d4..342a59374 100644
--- a/hw/bsp/stm32f7/family.cmake
+++ b/hw/bsp/stm32f7/family.cmake
@@ -1,3 +1,7 @@
+# RAM-rich family: SystemView RTT buffer defaults to the dogfood's measured-safe size
+# (-DSYSVIEW_BUFFER_SIZE overrides; see hw/bsp/family_support.cmake and boards.md)
+set(SYSVIEW_BUFFER_SIZE_DEFAULT 65536)
+
include_guard()
set(ST_FAMILY f7)
diff --git a/hw/bsp/stm32h7/family.cmake b/hw/bsp/stm32h7/family.cmake
index 8b6086356..e2a7376e0 100644
--- a/hw/bsp/stm32h7/family.cmake
+++ b/hw/bsp/stm32h7/family.cmake
@@ -1,3 +1,7 @@
+# RAM-rich family: SystemView RTT buffer defaults to the dogfood's measured-safe size
+# (-DSYSVIEW_BUFFER_SIZE overrides; see hw/bsp/family_support.cmake and boards.md)
+set(SYSVIEW_BUFFER_SIZE_DEFAULT 65536)
+
include_guard()
set(ST_FAMILY h7)
diff --git a/hw/bsp/stm32u5/family.cmake b/hw/bsp/stm32u5/family.cmake
index c580892b8..2a3a583da 100644
--- a/hw/bsp/stm32u5/family.cmake
+++ b/hw/bsp/stm32u5/family.cmake
@@ -1,3 +1,7 @@
+# RAM-rich family: SystemView RTT buffer defaults to the dogfood's measured-safe size
+# (-DSYSVIEW_BUFFER_SIZE overrides; see hw/bsp/family_support.cmake and boards.md)
+set(SYSVIEW_BUFFER_SIZE_DEFAULT 65536)
+
include_guard()
set(ST_FAMILY u5)