@@ -130,9 +130,7 @@ def parse_array(self, node_: node.AddressableNode) -> list:
130130
131131 def get_field (self , field : node .FieldNode ) -> dict :
132132 """Parse a field and return a dictionary."""
133- obj = {}
134- obj ["name" ] = field .inst_name
135- obj ["type" ] = "field"
133+ obj = {"name" : field .inst_name , "type" : "field" , "type_name" : field .type_name }
136134 obj ["desc" ] = field .get_property ("desc" , default = "" )
137135 obj ["parent_name" ] = field .parent .inst_name
138136 obj ["lsb" ] = field .lsb
@@ -180,7 +178,7 @@ def get_mem(self, mem: node.FieldNode) -> dict:
180178
181179 def get_reg (self , reg : node .RegNode ) -> dict :
182180 """Parse a register and return a dictionary."""
183- obj = {"name" : reg .inst_name , "type" : "reg" }
181+ obj = {"name" : reg .inst_name , "type" : "reg" , "type_name" : reg . type_name }
184182 obj ["desc" ] = reg .get_property ("desc" , default = "" )
185183 obj ["width" ] = reg .get_property ("regwidth" )
186184 obj ["hw_readable" ] = reg .has_hw_readable
@@ -309,7 +307,7 @@ def get_interface(self, addrmap: node.AddrmapNode, defalt_name: None | str = Non
309307
310308 def parse_ip_block (self , ip_block : node .AddrmapNode ) -> dict :
311309 """Parse the ip_block node of an IP block and return a dictionary."""
312- obj = {"name" : ip_block .inst_name , "type" : "device" }
310+ obj = {"name" : ip_block .inst_name , "type" : "device" , "type_name" : ip_block . type_name }
313311 params = self .get_paramesters (ip_block )
314312 if params :
315313 obj ["parameters" ] = params
@@ -357,7 +355,7 @@ def parse_soc(self, root: node.AddrmapNode) -> dict:
357355 print ("Error: Top level must be an addrmap" )
358356 raise TypeError
359357
360- obj = {"name" :root .inst_name , "devices" : []}
358+ obj = {"name" : root .inst_name , "devices" : []}
361359 for child in root .children ():
362360 if isinstance (child , node .AddrmapNode ):
363361 obj ["devices" ].append (self .parse_ip_block (child ))
0 commit comments