arm: DT autogeneration - Generate memory node
Implements a high level method for generating a Device Tree node for an AbstractMemory object. Change-Id: I544ec642f182f103df26de535fdfaf03b3787a08 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-on: https://gem5-review.googlesource.com/5964 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
This commit is contained in:
committed by
Curtis Dunham
parent
7e9adcce56
commit
1a51f335ff
@@ -88,10 +88,22 @@ class ArmSystem(System):
|
||||
# creating a node called '/' which will then be merged with the
|
||||
# root instead of appended.
|
||||
|
||||
def generateMemNode(mem_range):
|
||||
node = FdtNode("memory@%x" % long(mem_range.start))
|
||||
node.append(FdtPropertyStrings("device_type", ["memory"]))
|
||||
node.append(FdtPropertyWords("reg",
|
||||
state.addrCells(mem_range.start) +
|
||||
state.sizeCells(mem_range.size()) ))
|
||||
return node
|
||||
|
||||
root = FdtNode('/')
|
||||
root.append(state.addrCellsProperty())
|
||||
root.append(state.sizeCellsProperty())
|
||||
|
||||
# Add memory nodes
|
||||
for mem_range in self.mem_ranges:
|
||||
root.append(generateMemNode(mem_range))
|
||||
|
||||
for node in self.recurseDeviceTree(state):
|
||||
# Merge root nodes instead of adding them (for children
|
||||
# that need to add multiple root level nodes)
|
||||
|
||||
Reference in New Issue
Block a user