summaryrefslogtreecommitdiff
path: root/src/base/loader/dtb_object.hh
diff options
context:
space:
mode:
authorAli Saidi <Ali.Saidi@ARM.com>2014-10-29 23:18:26 -0500
committerAli Saidi <Ali.Saidi@ARM.com>2014-10-29 23:18:26 -0500
commitbaf88e908d285191c13b5e96c16065957e5af7a6 (patch)
tree7361d43b795f80a80a89995eb6865d51a972f36a /src/base/loader/dtb_object.hh
parent3a5c975fd7a0e6c8f25067c1794581056c01c22c (diff)
downloadgem5-baf88e908d285191c13b5e96c16065957e5af7a6.tar.xz
arm: Fix multi-system AArch64 boot w/caches.
Automatically extract cpu release address from DTB file. Check SCTLR_EL1 to verify all caches are enabled.
Diffstat (limited to 'src/base/loader/dtb_object.hh')
-rw-r--r--src/base/loader/dtb_object.hh7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/base/loader/dtb_object.hh b/src/base/loader/dtb_object.hh
index ec5294553..74bb52d44 100644
--- a/src/base/loader/dtb_object.hh
+++ b/src/base/loader/dtb_object.hh
@@ -60,6 +60,13 @@ class DtbObject : public ObjectFile
* @return returns true on success, false otherwise
*/
bool addBootCmdLine(const char* _args, size_t len);
+
+ /** Parse the DTB file enough to find the provided release
+ * address and return it.
+ * @return release address for SMP boot
+ */
+ Addr findReleaseAddr();
+
bool loadGlobalSymbols(SymbolTable *symtab,
Addr addrMask = std::numeric_limits<Addr>::max());
bool loadLocalSymbols(SymbolTable *symtab,