diff --git a/linux-ramdump-parser-v2/mm.py b/linux-ramdump-parser-v2/mm.py
index efcae528eb8e81a146fd5ec3eb274fdcae741c9f..a7661ce0beb488bcb773ee44c3447a55d4d4bb32 100644
--- a/linux-ramdump-parser-v2/mm.py
+++ b/linux-ramdump-parser-v2/mm.py
@@ -271,8 +271,11 @@ def dont_map_hole_lowmem_page_address(ramdump, page):
 
 def normal_lowmem_page_address(ramdump, page):
     phys = page_to_pfn(ramdump, page) << 12
-    memstart_addr = ramdump.read_s64('memstart_addr')
-    return phys - memstart_addr + ramdump.page_offset
+    if ramdump.arm64:
+        memstart_addr = ramdump.read_s64('memstart_addr')
+        return phys - memstart_addr + ramdump.page_offset
+    else:
+        return phys - ramdump.phys_offset + ramdump.page_offset
 
 
 def lowmem_page_address(ramdump, page):