Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/arch/mips/include/asm/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  jazzdma.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Helpfile for jazzdma.c -- Mips Jazz R4030 DMA controller support
 */

#ifndef _ASM_JAZZDMA_H
#define _ASM_JAZZDMA_H

/*
 * Prototypes and macros
 */

extern unsigned long vdma_alloc(unsigned long paddr, unsigned long size);
extern int vdma_free(unsigned long laddr);
extern unsigned long vdma_phys2log(unsigned long paddr);
extern unsigned long vdma_log2phys(unsigned long laddr);
extern void vdma_stats(void);  /* for debugging only */

extern void vdma_enable(int channel);
extern void vdma_disable(int channel);
extern void vdma_set_mode(int channel, int mode);
extern void vdma_set_addr(int channel, long addr);
extern void vdma_set_count(int channel, int count);
extern int vdma_get_residue(int channel);
extern int vdma_get_enable(int channel);

/*
 * some definitions used by the driver functions
 */

#define VDMA_PAGESIZE  4096
#define VDMA_PGTBL_ENTRIES 4096
#define VDMA_PGTBL_SIZE  (sizeof(VDMA_PGTBL_ENTRY) * VDMA_PGTBL_ENTRIES)
#define VDMA_PAGE_EMPTY  0xff000000

/*
 * Macros to get page no. and offset of a given address
 * Note that VDMA_PAGE() works for physical addresses only
 */

#define VDMA_PAGE(a)  ((unsigned int)(a) >> 12)
#define VDMA_OFFSET(a)  ((unsigned int)(a) & (VDMA_PAGESIZE-1))

/*
 * VDMA pagetable entry description
 */

typedef volatile struct VDMA_PGTBL_ENTRY {
 unsigned int frame;  /* physical frame no. */
 unsigned int owner;  /* owner of this entry (0=free) */
} VDMA_PGTBL_ENTRY;


/*
 * DMA channel control registers
 * in the R4030 MCT_ADR chip
 */

#define JAZZ_R4030_CHNL_MODE 0xE0000100 /* 8 DMA Channel Mode Registers, */
      /* 0xE0000100,120,140... */
#define JAZZ_R4030_CHNL_ENABLE 0xE0000108 /* 8 DMA Channel Enable Regs, */
      /* 0xE0000108,128,148... */
#define JAZZ_R4030_CHNL_COUNT 0xE0000110 /* 8 DMA Channel Byte Cnt Regs, */
      /* 0xE0000110,130,150... */
#define JAZZ_R4030_CHNL_ADDR 0xE0000118 /* 8 DMA Channel Address Regs, */
      /* 0xE0000118,138,158... */

/* channel enable register bits */

#define R4030_CHNL_ENABLE  (1<<0)
#define R4030_CHNL_WRITE  (1<<1)
#define R4030_TC_INTR   (1<<8)
#define R4030_MEM_INTR   (1<<9)
#define R4030_ADDR_INTR   (1<<10)

/*
 * Channel mode register bits
 */

#define R4030_MODE_ATIME_40  (0) /* device access time on remote bus */
#define R4030_MODE_ATIME_80  (1)
#define R4030_MODE_ATIME_120  (2)
#define R4030_MODE_ATIME_160  (3)
#define R4030_MODE_ATIME_200  (4)
#define R4030_MODE_ATIME_240  (5)
#define R4030_MODE_ATIME_280  (6)
#define R4030_MODE_ATIME_320  (7)
#define R4030_MODE_WIDTH_8  (1<<3) /* device data bus width */
#define R4030_MODE_WIDTH_16  (2<<3)
#define R4030_MODE_WIDTH_32  (3<<3)
#define R4030_MODE_INTR_EN  (1<<5)
#define R4030_MODE_BURST  (1<<6) /* Rev. 2 only */
#define R4030_MODE_FAST_ACK  (1<<7) /* Rev. 2 only */

#endif /* _ASM_JAZZDMA_H */

Messung V0.5
C=90 H=93 G=91

¤ Dauer der Verarbeitung: 0.4 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.