1010from io import SEEK_END
1111from logging import getLogger
1212from time import sleep , time as now
13- from typing import Any , BinaryIO , Optional
13+ from typing import Any , BinaryIO , Optional , Union
1414
1515from .regs import CSRS , GPRS
1616from ..bitfield import BitField
@@ -277,7 +277,7 @@ def resume(self, hart: int = 0) -> None:
277277 self ._log .error ('Status %s' , status )
278278 raise TimeoutError (f'Cannot resume hart { self ._hart } ' )
279279
280- def read_csr (self , reg : [str | int ]) -> int :
280+ def read_csr (self , reg : Union [str , int ]) -> int :
281281 """Read the value of a CSR."""
282282 ireg = self ._get_register_index (reg )
283283 btf = self .BITFIELDS ['COMMAND' ]
@@ -292,7 +292,7 @@ def read_csr(self, reg: [str | int]) -> int:
292292 self ._log .info ('read %s = %08x' , reg , value )
293293 return value
294294
295- def write_csr (self , reg : [str | int ], value : int ) -> None :
295+ def write_csr (self , reg : Union [str , int ], value : int ) -> None :
296296 """Write a value to a CSR."""
297297 ireg = self ._get_register_index (reg )
298298 btf = self .BITFIELDS ['COMMAND' ]
@@ -497,7 +497,7 @@ def _read_reg(self, reg: str) -> int:
497497 self ._log .debug ('read 0x%08x' , value )
498498 return value
499499
500- def _get_register_index (self , reg : [str | int ]) -> int :
500+ def _get_register_index (self , reg : Union [str , int ]) -> int :
501501 if isinstance (reg , str ):
502502 # Not supported: FPR, Vector, etc.
503503 ireg = CSRS .get (reg .lower ())
0 commit comments