@@ -352,15 +352,22 @@ def execute_on_buffers(self, asynch=False, batch_size=None):
352352 assert self .odma [o ].read (0x00 ) & 0x4 != 0 , "Output DMA %d is not idle" % (o )
353353 # manually launch IODMAs since signatures are missing
354354 for iwdma , iwbuf , iwdma_name in self .external_weights :
355- iwdma .write (0x10 , iwbuf .device_address )
355+ iwdma .write (0x10 , iwbuf .device_address & 0xFFFFFFFF )
356+ iwdma .write (0x14 , (iwbuf .device_address >> 32 ) & 0xFFFFFFFF )
356357 iwdma .write (0x1C , batch_size )
357358 iwdma .write (0x00 , 1 )
358359 for o in range (self .num_outputs ):
359- self .odma [o ].write (0x10 , self .obuf_packed_device [o ].device_address )
360+ self .odma [o ].write (0x10 , self .obuf_packed_device [o ].device_address & 0xFFFFFFFF )
361+ self .odma [o ].write (
362+ 0x14 , (self .obuf_packed_device [o ].device_address >> 32 ) & 0xFFFFFFFF
363+ )
360364 self .odma [o ].write (0x1C , batch_size )
361365 self .odma [o ].write (0x00 , 1 )
362366 for i in range (self .num_inputs ):
363- self .idma [i ].write (0x10 , self .ibuf_packed_device [i ].device_address )
367+ self .idma [i ].write (0x10 , self .ibuf_packed_device [i ].device_address & 0xFFFFFFFF )
368+ self .idma [i ].write (
369+ 0x14 , (self .ibuf_packed_device [i ].device_address >> 32 ) & 0xFFFFFFFF
370+ )
364371 self .idma [i ].write (0x1C , batch_size )
365372 self .idma [i ].write (0x00 , 1 )
366373 elif self .platform == "alveo" :
0 commit comments