]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.h
ArmPlatformPkg/NorFlashDxe: prepare for devicepath format change
[mirror_edk2.git] / ArmPlatformPkg / Drivers / NorFlashDxe / NorFlashDxe.h
index 6c8cea28ea9432373d4069030e7b994db51b7278..4436fc4323f56a95ef786a9b3d21452588806d1b 100644 (file)
@@ -22,6 +22,7 @@
 #include <Guid/EventGroup.h>\r
 \r
 #include <Protocol/BlockIo.h>\r
+#include <Protocol/DiskIo.h>\r
 #include <Protocol/FirmwareVolumeBlock.h>\r
 \r
 #include <Library/DebugLib.h>\r
 #define NOR_FLASH_SIGNATURE                       SIGNATURE_32('n', 'o', 'r', '0')\r
 #define INSTANCE_FROM_FVB_THIS(a)                 CR(a, NOR_FLASH_INSTANCE, FvbProtocol, NOR_FLASH_SIGNATURE)\r
 #define INSTANCE_FROM_BLKIO_THIS(a)               CR(a, NOR_FLASH_INSTANCE, BlockIoProtocol, NOR_FLASH_SIGNATURE)\r
+#define INSTANCE_FROM_DISKIO_THIS(a)              CR(a, NOR_FLASH_INSTANCE, DiskIoProtocol, NOR_FLASH_SIGNATURE)\r
 \r
 typedef struct _NOR_FLASH_INSTANCE                NOR_FLASH_INSTANCE;\r
 \r
-typedef EFI_STATUS (*NOR_FLASH_INITIALIZE)        (NOR_FLASH_INSTANCE* Instance);\r
-\r
+#pragma pack (1)\r
 typedef struct {\r
   VENDOR_DEVICE_PATH                  Vendor;\r
   EFI_DEVICE_PATH_PROTOCOL            End;\r
 } NOR_FLASH_DEVICE_PATH;\r
+#pragma pack ()\r
 \r
 struct _NOR_FLASH_INSTANCE {\r
   UINT32                              Signature;\r
   EFI_HANDLE                          Handle;\r
 \r
-  BOOLEAN                             Initialized;\r
-  NOR_FLASH_INITIALIZE                Initialize;\r
-\r
   UINTN                               DeviceBaseAddress;\r
   UINTN                               RegionBaseAddress;\r
   UINTN                               Size;\r
@@ -141,12 +140,12 @@ struct _NOR_FLASH_INSTANCE {
 \r
   EFI_BLOCK_IO_PROTOCOL               BlockIoProtocol;\r
   EFI_BLOCK_IO_MEDIA                  Media;\r
+  EFI_DISK_IO_PROTOCOL                DiskIoProtocol;\r
 \r
-  BOOLEAN                             SupportFvb;\r
   EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL FvbProtocol;\r
-  VOID*                               FvbBuffer;\r
+  VOID*                               ShadowBuffer;\r
 \r
-  NOR_FLASH_DEVICE_PATH                      DevicePath;\r
+  NOR_FLASH_DEVICE_PATH               DevicePath;\r
 };\r
 \r
 EFI_STATUS\r
@@ -210,6 +209,31 @@ NorFlashBlockIoFlushBlocks (
   IN EFI_BLOCK_IO_PROTOCOL    *This\r
 );\r
 \r
+//\r
+// DiskIO Protocol function EFI_DISK_IO_PROTOCOL.ReadDisk\r
+//\r
+EFI_STATUS\r
+EFIAPI\r
+NorFlashDiskIoReadDisk (\r
+  IN EFI_DISK_IO_PROTOCOL         *This,\r
+  IN UINT32                       MediaId,\r
+  IN UINT64                       Offset,\r
+  IN UINTN                        BufferSize,\r
+  OUT VOID                        *Buffer\r
+  );\r
+\r
+//\r
+// DiskIO Protocol function EFI_DISK_IO_PROTOCOL.WriteDisk\r
+//\r
+EFI_STATUS\r
+EFIAPI\r
+NorFlashDiskIoWriteDisk (\r
+  IN EFI_DISK_IO_PROTOCOL         *This,\r
+  IN UINT32                       MediaId,\r
+  IN UINT64                       Offset,\r
+  IN UINTN                        BufferSize,\r
+  IN VOID                         *Buffer\r
+  );\r
 \r
 //\r
 // NorFlashFvbDxe.c\r
@@ -290,10 +314,11 @@ NorFlashUnlockAndEraseSingleBlock (
 \r
 EFI_STATUS\r
 NorFlashWriteSingleBlock (\r
-  IN NOR_FLASH_INSTANCE     *Instance,\r
-  IN EFI_LBA                Lba,\r
-  IN UINT32                 *DataBuffer,\r
-  IN UINT32                 BlockSizeInWords\r
+  IN        NOR_FLASH_INSTANCE   *Instance,\r
+  IN        EFI_LBA               Lba,\r
+  IN        UINTN                 Offset,\r
+  IN OUT    UINTN                *NumBytes,\r
+  IN        UINT8                *Buffer\r
   );\r
 \r
 EFI_STATUS\r
@@ -304,13 +329,6 @@ NorFlashWriteBlocks (
   IN  VOID              *Buffer\r
   );\r
 \r
-EFI_STATUS\r
-NorFlashWriteSingleWord (\r
-  IN NOR_FLASH_INSTANCE     *Instance,\r
-  IN UINTN                  WordAddress,\r
-  IN UINT32                 WriteData\r
-  );\r
-\r
 EFI_STATUS\r
 NorFlashReadBlocks (\r
   IN NOR_FLASH_INSTANCE   *Instance,\r
@@ -329,14 +347,17 @@ NorFlashRead (
   );\r
 \r
 EFI_STATUS\r
-NorFlashReset (\r
-  IN  NOR_FLASH_INSTANCE *Instance\r
+NorFlashWrite (\r
+  IN        NOR_FLASH_INSTANCE   *Instance,\r
+  IN        EFI_LBA               Lba,\r
+  IN        UINTN                 Offset,\r
+  IN OUT    UINTN                *NumBytes,\r
+  IN        UINT8                *Buffer\r
   );\r
 \r
 EFI_STATUS\r
-NorFlashUnlockSingleBlockIfNecessary (\r
-  IN NOR_FLASH_INSTANCE     *Instance,\r
-  IN UINTN                  BlockAddress\r
+NorFlashReset (\r
+  IN  NOR_FLASH_INSTANCE *Instance\r
   );\r
 \r
 #endif /* __NOR_FLASH_DXE_H__ */\r