This is the product of the data-width and the depth arguments, I.e the depth of the FIFO is in terms of data entries and not bytes (which is what the original implementation was suggesting). Fix.
Signed-off-by: Peter Crosthwaite <peter.crosthwa...@xilinx.com> --- hw/dma/pl330.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/dma/pl330.c b/hw/dma/pl330.c index 303f8b8..fe437cb 100644 --- a/hw/dma/pl330.c +++ b/hw/dma/pl330.c @@ -1606,7 +1606,7 @@ static void pl330_realize(DeviceState *dev, Error **errp) pl330_queue_init(&s->read_queue, s->rd_q_dep, s); pl330_queue_init(&s->write_queue, s->wr_q_dep, s); - pl330_fifo_init(&s->fifo, s->data_buffer_dep); + pl330_fifo_init(&s->fifo, s->data_width / 4 * s->data_buffer_dep); } static Property pl330_properties[] = { -- 1.8.5.4