diff --git a/src/arch/riscv/linux/process.cc b/src/arch/riscv/linux/process.cc
index 7239920..b2d0305 100644
--- a/src/arch/riscv/linux/process.cc
+++ b/src/arch/riscv/linux/process.cc
@@ -38,6 +38,7 @@
 
 #include "arch/riscv/isa_traits.hh"
 #include "arch/riscv/linux/linux.hh"
+#include "base/loader/object_file.hh"
 #include "base/trace.hh"
 #include "cpu/thread_context.hh"
 #include "debug/SyscallVerbose.hh"
@@ -51,6 +52,40 @@
 using namespace std;
 using namespace RiscvISA;
 
+namespace
+{
+
+class RiscvLinuxObjectFileLoader : public ObjectFile::Loader
+{
+  public:
+    Process *
+    load(ProcessParams *params, ObjectFile *obj_file) override
+    {
+        auto arch = obj_file->getArch();
+        auto opsys = obj_file->getOpSys();
+
+        if (arch != ObjectFile::Riscv64 && arch != ObjectFile::Riscv32)
+            return nullptr;
+
+        if (opsys == ObjectFile::UnknownOpSys) {
+            warn("Unknown operating system; assuming Linux.");
+            opsys = ObjectFile::Linux;
+        }
+
+        if (opsys != ObjectFile::Linux)
+            return nullptr;
+
+        if (arch == ObjectFile::Riscv64)
+            return new RiscvLinuxProcess64(params, obj_file);
+        else
+            return new RiscvLinuxProcess32(params, obj_file);
+    }
+};
+
+RiscvLinuxObjectFileLoader loader;
+
+} // anonymous namespace
+
 /// Target uname() handler.
 static SyscallReturn
 unameFunc64(SyscallDesc *desc, int callnum, Process *process,
