diff --git a/tool/CommandRegRead.cpp b/tool/CommandRegRead.cpp
index 965d69e686b0e02b5f1af49c8898c526ab66629d..dbc83a54f434b3b0f15b6bef9976f4465a264311 100644
--- a/tool/CommandRegRead.cpp
+++ b/tool/CommandRegRead.cpp
@@ -188,7 +188,7 @@ void CommandRegRead::execute(MasterDevice &m, const StringVector &args)
         unsigned int uval = le32_to_cpup(data.data);
         cout << uval << " 0x" << hex << setw(8) << uval << endl;
     } else if (dataType->name == "uint64") {
-        long long unsigned int uval = le32_to_cpup(data.data);
+        long long unsigned int uval = le64_to_cpup(data.data);
         cout << uval << " 0x" << hex << setw(8) << uval << endl;
     } else { // raw
         uint8_t *d = data.data;