On Fri, Sep 10, 2021 at 1:56 PM <frank.ch...@sifive.com> wrote: > > From: Green Wan <green....@sifive.com> > > Real PDMA is able to deal with non-multiple transaction size transactions. > > The following result is PDMA tested in U-boot on Unmatched board:
%s/U-boot/U-Boot > > => mw.l 0x3000000 0x0 <= Disclaim channel 0 > => mw.l 0x3000000 0x1 <= Claim channel 0 > => mw.l 0x3000004 0x11000000 <= wsize = rsize = 1 (2^1 = 2 > bytes) > => mw.q 0x3000008 0x3 <= NextBytes = 3 > => mw.q 0x3000010 0x84000000 <= NextDestination = 0x84000000 > => mw.q 0x3000018 0x84001000 <= NextSource = 0x84001000 > => mw.l 0x84000000 0x87654321 <= Fill test data to dst > => mw.l 0x84001000 0x12345678 <= Fill test data to src > => md.l 0x84000000 1; md.l 0x84001000 1 <= Dump src/dst memory contents > 84000000: 87654321 !Ce. > 84001000: 12345678 xV4. > => md.l 0x3000000 8 <= Dump PDMA status > 03000000: 00000001 11000000 00000003 00000000 ................ > 03000010: 84000000 00000000 84001000 00000000 ................ > => mw.l 0x3000000 0x3 <= Set channel 0 run and claim bits > => md.l 0x3000000 8 <= Dump PDMA status > 03000000: 40000001 11000000 00000003 00000000 ...@............ > 03000010: 84000000 00000000 84001000 00000000 ................ > => md.l 0x84000000 1; md.l 0x84001000 1 <= Dump src/dst memory contents > 84000000: 87345678 xV4. > 84001000: 12345678 xV4. > > Signed-off-by: Green Wan <green....@sifive.com> > Reviewed-by: Frank Chang <frank.ch...@sifive.com> > Tested-by: Max Hsu <max....@sifive.com> > Signed-off-by: Frank Chang <frank.ch...@sifive.com> > --- > hw/dma/sifive_pdma.c | 16 ++++++++++------ > 1 file changed, 10 insertions(+), 6 deletions(-) > Otherwise, Reviewed-by: Bin Meng <bmeng...@gmail.com> Tested-by: Bin Meng <bmeng...@gmail.com>