diff --git a/test/packs/ARM/RteTest_DFP/0.2.0/ARM.RteTest_DFP.pdsc b/test/packs/ARM/RteTest_DFP/0.2.0/ARM.RteTest_DFP.pdsc
index 8d54fe6af..3e9fef067 100644
--- a/test/packs/ARM/RteTest_DFP/0.2.0/ARM.RteTest_DFP.pdsc
+++ b/test/packs/ARM/RteTest_DFP/0.2.0/ARM.RteTest_DFP.pdsc
@@ -37,6 +37,9 @@
__var TraceD0_Pin = 0x00040003; // PE3
__var TraceD1_Pin = 0x00040004; // PE4
+
+
+
diff --git a/tools/projmgr/src/ProjMgrRunDebug.cpp b/tools/projmgr/src/ProjMgrRunDebug.cpp
index 0543a2bdc..09b22529b 100644
--- a/tools/projmgr/src/ProjMgrRunDebug.cpp
+++ b/tools/projmgr/src/ProjMgrRunDebug.cpp
@@ -374,23 +374,24 @@ void ProjMgrRunDebug::CollectDebugTopology(const ContextItem& context, const vec
// datapatches
for (const auto& [debug, _] : debugs) {
- Collection datapatches;
- debug->GetChildrenByTag("datapatch", datapatches);
- for (const auto& datapatch : datapatches) {
- DatapatchType patch;
- patch.address = datapatch->GetAttributeAsULL("address");
- patch.value = datapatch->GetAttributeAsULL("value");
- if (datapatch->HasAttribute("mask")) {
- patch.mask = datapatch->GetAttributeAsULL("mask");
- }
- patch.type = datapatch->GetAttribute("type");
- patch.info = datapatch->GetAttribute("info");
- if (datapatch->HasAttribute("__apid")) {
- datapatchById[datapatch->GetAttributeAsInt("__apid")].push_back(patch);
- } else {
- const auto& dp = datapatch->GetAttributeAsInt("__dp", defaultDp);
- const auto& apIndex = datapatch->GetAttributeAsInt("__ap", debug->GetAttributeAsInt("__ap", 0));
- datapatchByIndex[dp][apIndex].push_back(patch);
+ const RteDevicePropertyGroup* properties = dynamic_cast(debug);
+ for (const auto& datapatch : properties->GetEffectiveContent()) {
+ if (datapatch->GetTag() == "datapatch") {
+ DatapatchType patch;
+ patch.address = datapatch->GetAttributeAsULL("address");
+ patch.value = datapatch->GetAttributeAsULL("value");
+ if (datapatch->HasAttribute("mask")) {
+ patch.mask = datapatch->GetAttributeAsULL("mask");
+ }
+ patch.type = datapatch->GetAttribute("type");
+ patch.info = datapatch->GetAttribute("info");
+ if (datapatch->HasAttribute("__apid")) {
+ datapatchById[datapatch->GetAttributeAsInt("__apid")].push_back(patch);
+ } else {
+ const auto& dp = datapatch->GetAttributeAsInt("__dp", defaultDp);
+ const auto& apIndex = datapatch->GetAttributeAsInt("__ap", debug->GetAttributeAsInt("__ap", 0));
+ datapatchByIndex[dp][apIndex].push_back(patch);
+ }
}
}
}
diff --git a/tools/projmgr/test/data/TestRunDebug/ref/run-debug+TestHW3.cbuild-run.yml b/tools/projmgr/test/data/TestRunDebug/ref/run-debug+TestHW3.cbuild-run.yml
index 81aaa28db..3087d480f 100644
--- a/tools/projmgr/test/data/TestRunDebug/ref/run-debug+TestHW3.cbuild-run.yml
+++ b/tools/projmgr/test/data/TestRunDebug/ref/run-debug+TestHW3.cbuild-run.yml
@@ -146,6 +146,9 @@ cbuild-run:
- address: 0xE0040FF0
value: 0x0000000D
info: CIDR0
+ - address: 0x1000FFFF
+ value: 0x000000CC
+ info: Family level datapatch
- dpid: 1
accessports:
- apid: 1