Skip to content
Snippets Groups Projects
Commit 3aa49913 authored by Avinash Jain's avatar Avinash Jain
Browse files

lrdp_v2: config value changes

Config value is changed from CONFIG_ARM64_PGTABLE_LEVELS
to CONFIG_PGTABLE_LEVELS in 3.18.
vmemmap is shifted to base addr (0x80000000):
commit ab754494cbe4dd44a9e1354b3d93c8d5d5139aad

Change-Id: Ib6fa6e1b780db5117f8a750003216794d9cedeea
parent 53e029b4
No related branches found
No related tags found
No related merge requests found
# Copyright (c) 2013-2015, The Linux Foundation. All rights reserved. # Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 and # it under the terms of the GNU General Public License version 2 and
...@@ -24,6 +24,7 @@ def get_debug_flags(ramdump, page): ...@@ -24,6 +24,7 @@ def get_debug_flags(ramdump, page):
flagval = ramdump.read_word(page + debug_flag_offset) flagval = ramdump.read_word(page + debug_flag_offset)
return flagval return flagval
def page_zonenum(page_flags): def page_zonenum(page_flags):
# save this in a variable somewhere... # save this in a variable somewhere...
return (page_flags >> 26) & 3 return (page_flags >> 26) & 3
...@@ -134,7 +135,11 @@ def get_vmemmap(ramdump): ...@@ -134,7 +135,11 @@ def get_vmemmap(ramdump):
# See: include/asm-generic/pgtable-nopud.h, # See: include/asm-generic/pgtable-nopud.h,
# arch/arm64/include/asm/pgtable-hwdef.h, # arch/arm64/include/asm/pgtable-hwdef.h,
# arch/arm64/include/asm/pgtable.h # arch/arm64/include/asm/pgtable.h
nlevels = int(ramdump.get_config_val("CONFIG_ARM64_PGTABLE_LEVELS")) if (ramdump.kernel_version < (3, 18, 0)):
nlevels = int(ramdump.get_config_val("CONFIG_ARM64_PGTABLE_LEVELS"))
else:
nlevels = int(ramdump.get_config_val("CONFIG_PGTABLE_LEVELS"))
if ramdump.is_config_defined("CONFIG_ARM64_64K_PAGES"): if ramdump.is_config_defined("CONFIG_ARM64_64K_PAGES"):
page_shift = 16 page_shift = 16
else: else:
...@@ -146,7 +151,15 @@ def get_vmemmap(ramdump): ...@@ -146,7 +151,15 @@ def get_vmemmap(ramdump):
spsize = ramdump.sizeof('struct page') spsize = ramdump.sizeof('struct page')
vmemmap_size = bitops.align((1 << (va_bits - page_shift)) * spsize, vmemmap_size = bitops.align((1 << (va_bits - page_shift)) * spsize,
pud_size) pud_size)
vmalloc_end = ramdump.page_offset - pud_size - vmemmap_size if (ramdump.kernel_version < (3, 18, 31)):
vmalloc_end = ramdump.page_offset - pud_size - vmemmap_size
# vmalloc_end = 0xFFFFFFBC00000000
else:
# for version >= 3.18.31,
# vmemmap is shifted to base addr (0x80000000) pfn.
pfn_offset = (ramdump.phys_offset >> page_shift)
offset = pfn_offset * spsize
vmalloc_end = ramdump.page_offset - pud_size - vmemmap_size - offset
return vmalloc_end return vmalloc_end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment