URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
Compare Revisions
- This comparison shows the changes necessary to convert path
/
- from Rev 1399 to Rev 1400
- ↔ Reverse comparison
Rev 1399 → Rev 1400
/trunk/or1ksim/peripheral/dma.c
311,7 → 311,9
} |
|
/* Transfer one word */ |
set_mem32( channel->destination, eval_mem32( channel->source, &breakpoint ), &breakpoint ); |
set_direct32( channel->destination, eval_direct32( channel->source, |
&breakpoint, 0, 0 ), |
&breakpoint, 0, 0 ); |
|
/* Advance the source and destionation pointers */ |
masked_increase( &(channel->source), channel->source_mask ); |
343,7 → 345,7
void dma_load_descriptor( struct dma_channel *channel ) |
{ |
int breakpoint = 0; |
unsigned long desc_csr = eval_mem32( channel->regs.desc + DMA_DESC_CSR, &breakpoint ); |
unsigned long desc_csr = eval_direct32( channel->regs.desc + DMA_DESC_CSR, &breakpoint, 0, 0 ); |
|
channel->load_next_descriptor_when_done = !TEST_FLAG( desc_csr, DMA_DESC_CSR, EOL ); |
|
354,11 → 356,11
|
SET_FIELD( channel->regs.sz, DMA_CH_SZ, TOT_SZ, GET_FIELD( desc_csr, DMA_DESC_CSR, TOT_SZ ) ); |
|
channel->regs.a0 = eval_mem32( channel->regs.desc + DMA_DESC_ADR0, &breakpoint ); |
channel->regs.a1 = eval_mem32( channel->regs.desc + DMA_DESC_ADR1, &breakpoint ); |
channel->regs.a0 = eval_direct32( channel->regs.desc + DMA_DESC_ADR0, &breakpoint, 0, 0 ); |
channel->regs.a1 = eval_direct32( channel->regs.desc + DMA_DESC_ADR1, &breakpoint, 0, 0 ); |
|
channel->current_descriptor = channel->regs.desc; |
channel->regs.desc = eval_mem32( channel->regs.desc + DMA_DESC_NEXT, &breakpoint ); |
channel->regs.desc = eval_direct32( channel->regs.desc + DMA_DESC_NEXT, &breakpoint, 0, 0 ); |
} |
|
|