OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [stable_0_2_0_rc1/] [or1ksim/] [peripheral/] [dma.c] - Diff between revs 1358 and 1359

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 1358 Rev 1359
Line 42... Line 42...
#include "debug.h"
#include "debug.h"
 
 
/* The representation of the DMA controllers */
/* The representation of the DMA controllers */
static struct dma_controller dmas[MAX_DMAS];
static struct dma_controller dmas[MAX_DMAS];
 
 
static uint32_t dma_read32( oraddr_t addr );
static uint32_t dma_read32( oraddr_t addr, void *dat );
static void dma_write32( oraddr_t addr, uint32_t value );
static void dma_write32( oraddr_t addr, uint32_t value, void *dat );
 
 
static unsigned long dma_read_ch_csr( struct dma_channel *channel );
static unsigned long dma_read_ch_csr( struct dma_channel *channel );
static void dma_write_ch_csr( struct dma_channel *channel, unsigned long value );
static void dma_write_ch_csr( struct dma_channel *channel, unsigned long value );
static void dma_controller_clock( struct dma_controller *dma );
static void dma_controller_clock( struct dma_controller *dma );
static void dma_load_descriptor( struct dma_channel *channel );
static void dma_load_descriptor( struct dma_channel *channel );
Line 77... Line 77...
      dma->ch[channel_number].channel_number = channel_number;
      dma->ch[channel_number].channel_number = channel_number;
      dma->ch[channel_number].channel_mask = 1LU << channel_number;
      dma->ch[channel_number].channel_mask = 1LU << channel_number;
      dma->ch[channel_number].regs.am0 = dma->ch[channel_number].regs.am1 = 0xFFFFFFFC;
      dma->ch[channel_number].regs.am0 = dma->ch[channel_number].regs.am1 = 0xFFFFFFFC;
    }
    }
    if ( dma->baseaddr != 0 )
    if ( dma->baseaddr != 0 )
      register_memoryarea( dma->baseaddr, DMA_ADDR_SPACE, 4, 0, dma_read32, dma_write32);
      register_memoryarea( dma->baseaddr, DMA_ADDR_SPACE, 4, 0, dma_read32, dma_write32, NULL );
  }
  }
}
}
 
 
/* Print register values on stdout */
/* Print register values on stdout */
void dma_status( void )
void dma_status( void )
Line 117... Line 117...
  }
  }
}
}
 
 
 
 
/* Read a register */
/* Read a register */
uint32_t dma_read32( oraddr_t addr )
uint32_t dma_read32( oraddr_t addr, void *dat )
{
{
  unsigned i;
  unsigned i;
  struct dma_controller *dma = NULL;
  struct dma_controller *dma = NULL;
 
 
  for ( i = 0; i < MAX_DMAS && dma == NULL; ++ i ) {
  for ( i = 0; i < MAX_DMAS && dma == NULL; ++ i ) {
Line 192... Line 192...
}
}
 
 
 
 
 
 
/* Write a register */
/* Write a register */
void dma_write32( oraddr_t addr, uint32_t value )
void dma_write32( oraddr_t addr, uint32_t value, void *dat )
{
{
  unsigned i;
  unsigned i;
  struct dma_controller *dma = NULL;
  struct dma_controller *dma = NULL;
 
 
  /* Find which controller this is */
  /* Find which controller this is */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.