Skip to content

Commit 3a0cd1c

Browse files
authored
Merge pull request #1412 from LeahLS/feature/aupzu3-integration
Support 64-bit buffer addresses
2 parents 551ebf8 + 455cb96 commit 3a0cd1c

1 file changed

Lines changed: 10 additions & 3 deletions

File tree

src/finn/qnn-data/templates/driver/driver_base.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)