blob: 21987d0e6bc8d157d8d7e5975ffe229c41685a74 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
/** @file
Abstractions for simple OMAP DMA.
OMAP_DMA4 structure elements are described in the OMAP35xx TRM.
Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef __OMAP_DMA_LIB_H__
#define __OMAP_DMA_LIB_H__
// Example from DMA chapter of the OMAP35xx spec
typedef struct {
UINT8 DataType; // DMA4_CSDPi[1:0]
UINT8 ReadPortAccessType; // DMA4_CSDPi[8:7]
UINT8 WritePortAccessType; // DMA4_CSDPi[15:14]
UINT8 SourceEndiansim; // DMA4_CSDPi[21]
UINT8 DestinationEndianism; // DMA4_CSDPi[19]
UINT8 WriteMode; // DMA4_CSDPi[17:16]
UINT8 SourcePacked; // DMA4_CSDPi[6]
UINT8 DestinationPacked; // DMA4_CSDPi[13]
UINT32 NumberOfElementPerFrame; // DMA4_CENi
UINT32 NumberOfFramePerTransferBlock; // DMA4_CFNi
UINT32 SourceStartAddress; // DMA4_CSSAi
UINT32 DestinationStartAddress; // DMA4_CDSAi
UINT32 SourceElementIndex; // DMA4_CSEi
UINT32 SourceFrameIndex; // DMA4_CSFi
UINT32 DestinationElementIndex; // DMA4_CDEi
UINT32 DestinationFrameIndex; // DMA4_CDFi
UINT8 ReadPortAccessMode; // DMA4_CCRi[13:12]
UINT8 WritePortAccessMode; // DMA4_CCRi[15:14]
UINT8 ReadPriority; // DMA4_CCRi[6]
UINT8 WritePriority; // DMA4_CCRi[23]
UINT8 ReadRequestNumber; // DMA4_CCRi[4:0]
UINT8 WriteRequestNumber; // DMA4_CCRi[20:19]
} OMAP_DMA4;
/**
Configure OMAP DMA Channel
@param Channel DMA Channel to configure
@param Dma4 Pointer to structure used to initialize DMA registers for the Channel
@retval EFI_SUCCESS The range was mapped for the returned NumberOfBytes.
@retval EFI_INVALID_PARAMETER Channel is not valid
@retval EFI_DEVICE_ERROR The system hardware could not map the requested information.
**/
EFI_STATUS
EFIAPI
EnableDmaChannel (
IN UINTN Channel,
IN OMAP_DMA4 *Dma4
);
/**
Turn of DMA channel configured by EnableDma().
@param Channel DMA Channel to configure
@param SuccesMask Bits in DMA4_CSR register indicate EFI_SUCCESS
@param ErrorMask Bits in DMA4_CSR register indicate EFI_DEVICE_ERROR
@retval EFI_SUCCESS DMA hardware disabled
@retval EFI_INVALID_PARAMETER Channel is not valid
@retval EFI_DEVICE_ERROR The system hardware could not map the requested information.
**/
EFI_STATUS
EFIAPI
DisableDmaChannel (
IN UINTN Channel,
IN UINT32 SuccessMask,
IN UINT32 ErrorMask
);
#endif
|