@@ -517,9 +517,11 @@ def derive_peripheral(self, pname, pmod):
517517 if isinstance (pmod , str ):
518518 pderive = pmod
519519 base_address = None
520+ description = None
520521 elif isinstance (pmod , dict ):
521522 pderive = pmod ["_from" ]
522523 base_address = pmod .get ("baseAddress" , None )
524+ description = pmod .get ("description" , None )
523525 else :
524526 raise SvdPatchError ("derive: incorrect syntax for {}" .format (pname ))
525527 ptag = parent .find ("./peripheral[name='{}']" .format (pname ))
@@ -532,11 +534,13 @@ def derive_peripheral(self, pname, pmod):
532534 ET .SubElement (ptag , "addressOffset" ).text = base_address
533535 else :
534536 for value in list (ptag ):
535- if value .tag in ("name" , "baseAddress" , "interrupt" ):
537+ if value .tag in ("name" , "baseAddress" , "interrupt" , "description" ):
536538 continue
537539 ptag .remove (value )
538540 if base_address :
539541 ptag .find ("baseAddress" ).text = base_address
542+ if description :
543+ ptag .find ("description" ).text = description
540544 for value in ptag :
541545 last = value
542546 last .tail = "\n "
@@ -845,9 +849,11 @@ def derive_register(self, rname, rmod):
845849 if isinstance (rmod , str ):
846850 rderive = rmod
847851 address_offset = None
852+ description = None
848853 elif isinstance (rmod , dict ):
849854 rderive = rmod ["_from" ]
850855 address_offset = rmod .get ("addressOffset" , None )
856+ description = rmod .get (description , None )
851857 else :
852858 raise SvdPatchError ("derive: incorrect syntax for {}" .format (rname ))
853859 rtag = parent .find ("./register[name='{}']" .format (rname ))
@@ -860,11 +866,13 @@ def derive_register(self, rname, rmod):
860866 ET .SubElement (rtag , "addressOffset" ).text = address_offset
861867 else :
862868 for value in list (rtag ):
863- if value .tag in ("name" , "addressOffset" ):
869+ if value .tag in ("name" , "addressOffset" , "description" ):
864870 continue
865871 rtag .remove (value )
866872 if address_offset :
867873 rtag .find ("addressOffset" ).text = address_offset
874+ if description :
875+ rtag .find ("description" ).text = description
868876 for value in rtag :
869877 last = value
870878 last .tail = "\n "
@@ -1105,10 +1113,10 @@ def process_register(self, rspec, register, update_fields=True):
11051113 pname = self .ptag .find ("name" ).text
11061114 rcount = 0
11071115 for rtag in self .iter_registers (rspec ):
1116+ rcount += 1
11081117 if "derivedFrom" in rtag .attrib :
11091118 continue
11101119 r = Register (rtag )
1111- rcount += 1
11121120 # Handle deletions
11131121 for fspec in register .get ("_delete" , []):
11141122 r .delete_field (fspec )
0 commit comments