]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Omap35xxPkg/Include/Library/OmapDmaLib.h
Clean up OMAP DMA lib and split into generic DMA lib based on PCI_IO DMA abstractions...
[mirror_edk2.git] / Omap35xxPkg / Include / Library / OmapDmaLib.h
index 9c60d44ee50a946b610b4e5508abceb817fc71ed..0dc4468c917c94a7537a6d110b26f56eb9683b5d 100755 (executable)
@@ -1,10 +1,7 @@
 /** @file
 
-  Abstractions for simple OMAP DMA. The DMA functions are modeled on 
-  the PCI IO protocol and follow the same rules as outlined in the UEFI specification.
-  OMAP_DMA4 structure elements are described in the OMAP35xx TRM. Currently 
-  there is no PCI'less DMA protocol, if one existed it could be used to
-  replace this library.
+  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>
 
 #ifndef __OMAP_DMA_LIB_H__
 #define __OMAP_DMA_LIB_H__
 
-typedef enum {\r
-  ///\r
-  /// A read operation from system memory by a bus master.\r
-  ///\r
-  MapOperationBusMasterRead,\r
-  ///\r
-  /// A write operation from system memory by a bus master.\r
-  ///\r
-  MapOperationBusMasterWrite,\r
-  ///\r
-  /// Provides both read and write access to system memory by both the processor and a\r
-  /// bus master. The buffer is coherent from both the processor's and the bus master's point of view.\r
-  ///\r
-  MapOperationBusMasterCommonBuffer,\r
-  MapOperationMaximum\r
-} DMA_MAP_OPERATION;\r
-
 
 // Example from DMA chapter of the OMAP35xx spec
 typedef struct {\r
@@ -88,6 +68,8 @@ EnableDmaChannel (
   Turn of DMA channel configured by EnableDma().\r
             \r
   @param  Channel               DMA Channel to configure\r
+  @param  SuccesMask            Bits in DMA4_CSR register indicate EFI_SUCCESS\r
+  @param  ErrorMask             Bits in DMA4_CSR register indicate EFI_DEVICE_ERROR\r
                                   \r
   @retval EFI_SUCCESS           DMA hardware disabled\r
   @retval EFI_INVALID_PARAMETER Channel is not valid\r
@@ -97,104 +79,12 @@ EnableDmaChannel (
 EFI_STATUS
 EFIAPI
 DisableDmaChannel (
-  IN  UINTN       Channel
-  );
-
-
-/**                                                                 \r
-  Provides the DMA controller-specific addresses needed to access system memory.\r
-  \r
-  Operation is relative to the DMA bus master.\r
-            \r
-  @param  Operation             Indicates if the bus master is going to read or write to system memory.\r
-  @param  HostAddress           The system memory address to map to the DMA controller.\r
-  @param  NumberOfBytes         On input the number of bytes to map. On output the number of bytes\r
-                                that were mapped.                                                 \r
-  @param  DeviceAddress         The resulting map address for the bus master controller to use to\r
-                                access the hosts HostAddress.                                        \r
-  @param  Mapping               A resulting value to pass to Unmap().\r
-                                  \r
-  @retval EFI_SUCCESS           The range was mapped for the returned NumberOfBytes.\r
-  @retval EFI_UNSUPPORTED       The HostAddress cannot be mapped as a common buffer.                                \r
-  @retval EFI_INVALID_PARAMETER One or more parameters are invalid.\r
-  @retval EFI_OUT_OF_RESOURCES  The request could not be completed due to a lack of resources.\r
-  @retval EFI_DEVICE_ERROR      The system hardware could not map the requested address.\r
-                                   \r
-**/
-EFI_STATUS
-EFIAPI
-DmaMap (
-  IN     DMA_MAP_OPERATION              Operation,
-  IN     VOID                           *HostAddress,\r
-  IN OUT UINTN                          *NumberOfBytes,\r
-  OUT    PHYSICAL_ADDRESS               *DeviceAddress,\r
-  OUT    VOID                           **Mapping\r
-  );
-
-
-
-
-/**                                                                 \r
-  Completes the DmaMapBusMasterRead(), DmaMapBusMasterWrite(), or DmaMapBusMasterCommonBuffer()\r
-  operation and releases any corresponding resources.\r
-            \r
-  @param  Mapping               The mapping value returned from DmaMap*().\r
-                                  \r
-  @retval EFI_SUCCESS           The range was unmapped.\r
-  @retval EFI_DEVICE_ERROR      The data was not committed to the target system memory.\r
-                                   \r
-**/
-EFI_STATUS
-EFIAPI
-DmaUnmap (
-  IN  VOID                         *Mapping\r
+  IN  UINTN       Channel,
+  IN  UINT32      SuccessMask,
+  IN  UINT32      ErrorMask
   );
 
 
-/**                                                                 \r
-  Allocates pages that are suitable for an DmaMap() of type MapOperationBusMasterCommonBuffer.\r
-  mapping.                                                                       \r
-            \r
-  @param  MemoryType            The type of memory to allocate, EfiBootServicesData or\r
-                                EfiRuntimeServicesData.                               \r
-  @param  Pages                 The number of pages to allocate.                                \r
-  @param  HostAddress           A pointer to store the base system memory address of the\r
-                                allocated range.                                        \r
-\r
-                                @retval EFI_SUCCESS           The requested memory pages were allocated.\r
-  @retval EFI_UNSUPPORTED       Attributes is unsupported. The only legal attribute bits are\r
-                                MEMORY_WRITE_COMBINE and MEMORY_CACHED.                     \r
-  @retval EFI_INVALID_PARAMETER One or more parameters are invalid.\r
-  @retval EFI_OUT_OF_RESOURCES  The memory pages could not be allocated.  \r
-                                   \r
-**/
-EFI_STATUS
-EFIAPI
-DmaAllocateBuffer (
-  IN  EFI_MEMORY_TYPE              MemoryType,
-  IN  UINTN                        Pages,\r
-  OUT VOID                         **HostAddress\r
-  );\r
-
-
-/**                                                                 \r
-  Frees memory that was allocated with DmaAllocateBuffer().\r
-            \r
-  @param  Pages                 The number of pages to free.                                \r
-  @param  HostAddress           The base system memory address of the allocated range.                                    \r
-                                  \r
-  @retval EFI_SUCCESS           The requested memory pages were freed.\r
-  @retval EFI_INVALID_PARAMETER The memory range specified by HostAddress and Pages\r
-                                was not allocated with DmaAllocateBuffer().\r
-                                     \r
-**/\r
-EFI_STATUS
-EFIAPI
-DmaFreeBuffer (
-  IN  UINTN                        Pages,\r
-  IN  VOID                         *HostAddress\r
-  );\r
-
 
 #endif