cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

dma.h (1830B)


      1/*
      2 * include/asm-xtensa/dma.h
      3 *
      4 * This file is subject to the terms and conditions of the GNU General Public
      5 * License.  See the file "COPYING" in the main directory of this archive
      6 * for more details.
      7 *
      8 * Copyright (C) 2003 - 2005 Tensilica Inc.
      9 */
     10
     11#ifndef _XTENSA_DMA_H
     12#define _XTENSA_DMA_H
     13
     14#include <asm/io.h>		/* need byte IO */
     15
     16/*
     17 * This is only to be defined if we have PC-like DMA.
     18 * By default this is not true on an Xtensa processor,
     19 * however on boards with a PCI bus, such functionality
     20 * might be emulated externally.
     21 *
     22 * NOTE:  there still exists driver code that assumes
     23 * this is defined, eg. drivers/sound/soundcard.c (as of 2.4).
     24 */
     25#define MAX_DMA_CHANNELS	8
     26
     27/*
     28 * The maximum virtual address to which DMA transfers
     29 * can be performed on this platform.
     30 *
     31 * NOTE: This is board (platform) specific, not processor-specific!
     32 *
     33 * NOTE: This assumes DMA transfers can only be performed on
     34 *	the section of physical memory contiguously mapped in virtual
     35 *	space for the kernel.  For the Xtensa architecture, this
     36 *	means the maximum possible size of this DMA area is
     37 *	the size of the statically mapped kernel segment
     38 *	(XCHAL_KSEG_{CACHED,BYPASS}_SIZE), ie. 128 MB.
     39 *
     40 * NOTE: When the entire KSEG area is DMA capable, we subtract
     41 *	one from the max address so that the virt_to_phys() macro
     42 *	works correctly on the address (otherwise the address
     43 *	enters another area, and virt_to_phys() may not return
     44 *	the value desired).
     45 */
     46
     47#ifndef MAX_DMA_ADDRESS
     48#define MAX_DMA_ADDRESS		(PAGE_OFFSET + XCHAL_KIO_SIZE - 1)
     49#endif
     50
     51/* Reserve and release a DMA channel */
     52extern int request_dma(unsigned int dmanr, const char * device_id);
     53extern void free_dma(unsigned int dmanr);
     54
     55#ifdef CONFIG_PCI
     56extern int isa_dma_bridge_buggy;
     57#else
     58#define isa_dma_bridge_buggy 	(0)
     59#endif
     60
     61
     62#endif