summaryrefslogtreecommitdiff
path: root/tb/avalon.impl.hpp
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2022-12-11 23:00:37 -0600
committerAlejandro Soto <alejandro@34project.org>2022-12-16 16:29:10 -0600
commit0284628a47d5b4797c89f6846b9efee3f1243b94 (patch)
treef287cb931e7bba24a7953eacaf2769d0a80cf789 /tb/avalon.impl.hpp
parentd006be2e89aa493237f212811ee880ed8b54241b (diff)
Implement register writes from gdb
Diffstat (limited to '')
-rw-r--r--tb/avalon.impl.hpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/tb/avalon.impl.hpp b/tb/avalon.impl.hpp
index 4dee4f2..6f4bfb9 100644
--- a/tb/avalon.impl.hpp
+++ b/tb/avalon.impl.hpp
@@ -146,12 +146,15 @@ namespace taller::avalon
}
template<class Platform>
- void interconnect<Platform>::patch(std::uint32_t addr, std::uint32_t writedata)
+ bool interconnect<Platform>::patch(std::uint32_t addr, std::uint32_t writedata)
{
std::uint32_t avl_address = addr << 2;
auto *dev = resolve_external(avl_address);
- assert(dev);
+ if(!dev)
+ {
+ return false;
+ }
auto pos = (avl_address & ~dev->address_mask()) >> dev->word_bits();
@@ -159,6 +162,8 @@ namespace taller::avalon
{
continue;
}
+
+ return true;
}
template<class Platform>