summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/arm/linux/system.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/arch/arm/linux/system.cc b/src/arch/arm/linux/system.cc
index 74950cbaf..4478aadf4 100644
--- a/src/arch/arm/linux/system.cc
+++ b/src/arch/arm/linux/system.cc
@@ -45,6 +45,7 @@
#include "arch/arm/isa_traits.hh"
#include "arch/arm/utility.hh"
#include "arch/generic/linux/threadinfo.hh"
+#include "base/loader/dtb_object.hh"
#include "base/loader/object_file.hh"
#include "base/loader/symtab.hh"
#include "cpu/base.hh"
@@ -143,6 +144,20 @@ LinuxArmSystem::initState()
if (!dtb_file) {
fatal("couldn't load DTB file: %s\n", params()->dtb_filename);
}
+
+ DtbObject *_dtb_file = dynamic_cast<DtbObject*>(dtb_file);
+
+ if (_dtb_file) {
+ if (!_dtb_file->addBootCmdLine(params()->boot_osflags.c_str(),
+ params()->boot_osflags.size())) {
+ warn("couldn't append bootargs to DTB file: %s\n",
+ params()->dtb_filename);
+ }
+ } else {
+ warn("dtb_file cast failed; couldn't append bootargs "
+ "to DTB file: %s\n", params()->dtb_filename);
+ }
+
dtb_file->setTextBase(params()->atags_addr);
dtb_file->loadSections(physProxy);
delete dtb_file;