1.1 --- a/pkg/devices/lib/dma/src/x1600.cc Fri Jun 07 16:17:22 2024 +0200
1.2 +++ b/pkg/devices/lib/dma/src/x1600.cc Fri Jun 07 17:16:54 2024 +0200
1.3 @@ -84,6 +84,7 @@
1.4 {
1.5 Dma_no_descriptor_transfer = 0x80000000,
1.6 Dma_8word_descriptor = 0x40000000,
1.7 + Dma_4word_descriptor = 0x00000000,
1.8 Dma_copy_offset_mask = 0x0000ff00,
1.9 Dma_address_error = 0x00000010,
1.10 Dma_trans_completed = 0x00000008,
1.11 @@ -311,7 +312,10 @@
1.12 desc->destination = destination;
1.13 desc->transfer_count = (units & Dma_transfer_count_mask) |
1.14 (descriptor_offset << Dma_descriptor_offset_shift);
1.15 - desc->request_source = (enum Dma_x1600_request_type) type;
1.16 +
1.17 + // NOTE: The 8-word descriptor can be configured with the request type.
1.18 +
1.19 + _regs[Dma_request_source] = (enum Dma_x1600_request_type) type;
1.20
1.21 // NOTE: Stride not supported yet.
1.22
1.23 @@ -339,7 +343,7 @@
1.24
1.25 // Enable the channel with descriptor transfer configured if appropriate.
1.26
1.27 - _regs[Dma_control_status] = (desc_vaddr ? Dma_8word_descriptor :
1.28 + _regs[Dma_control_status] = (desc_vaddr ? Dma_4word_descriptor :
1.29 Dma_no_descriptor_transfer) |
1.30 Dma_channel_enable;
1.31