mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-22 05:30:24 +00:00
board_inspector/extractors: extract memory layout
This patch extracts information on mapping of available RAM and put them under the `/acrn-config/memory` node in the board XML. Each range of available RAM is represented by its start (host physical) address, end address and size (in byte). The following is an example of the generated XML. <memory> <range start="0x0000000000000000" end="0x0000000000057fff" size="360448"/> <range start="0x0000000000059000" end="0x000000000009dfff" size="282624"/> <range start="0x0000000000100000" end="0x00000000c9ff9fff" size="3387924480"/> <range start="0x00000000c9ffc000" end="0x00000000d984afff" size="260370432"/> <range start="0x00000000dbdff000" end="0x00000000dbdfffff" size="4096"/> <range start="0x0000000100000000" end="0x000000041dffffff" size="13388218368"/> </memory> Tracked-On: #5922 Signed-off-by: Junjie Mao <junjie.mao@intel.com>
This commit is contained in:
parent
ffe213359c
commit
52ee5827e1
23
misc/config_tools/board_inspector/extractors/30-memory.py
Normal file
23
misc/config_tools/board_inspector/extractors/30-memory.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# Copyright (C) 2021 Intel Corporation. All rights reserved.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
#
|
||||||
|
|
||||||
|
import logging
|
||||||
|
import lxml.etree
|
||||||
|
|
||||||
|
from memmapparser import parse_e820, e820
|
||||||
|
from extractors.helpers import get_node, add_child
|
||||||
|
|
||||||
|
def extract_layout(memory_node):
|
||||||
|
e820_table = parse_e820()
|
||||||
|
for e820_entry in e820_table:
|
||||||
|
if e820_entry.type == e820.E820_TYPE_RAM:
|
||||||
|
start = "0x{:016x}".format(e820_entry.start)
|
||||||
|
end = "0x{:016x}".format(e820_entry.end)
|
||||||
|
size = e820_entry.end - e820_entry.start + 1
|
||||||
|
add_child(memory_node, "range", start=start, end=end, size=str(size))
|
||||||
|
|
||||||
|
def extract(board_etree):
|
||||||
|
memory_node = get_node(board_etree, "//memory")
|
||||||
|
extract_layout(memory_node)
|
Loading…
Reference in New Issue
Block a user