Hi All,

 

I am facing issue in installing FAT filesystem on my SATA HDD.

 

My HDD is getting detected in UEFI as block device BLK1 and BLK2(Logs pasted below):

 

UEFI Interactive Shell v2.1

EDK II

UEFI v2.50 (LS2080a RDB board EFI May 18 2016 11:38:35, 0x00000000)

Mapping table

      FS0: Alias(s):F0:

          MemoryMapped(0xB,0x837EF30000,0x837EFFFFFF)

      FS1: Alias(s):F1:

          MemoryMapped(0xB,0x83DF659000,0x83DFB11227)

      FS2: Alias(s):HD11b:;BLK6:

          VenHw(B6F44CC0-9E45-11DF-BE21-0002A5D5C51B)/HD(1,MBR,0x00000000,0x2000,0xEE5800)

     BLK3: Alias(s):

          VenHw(1F15DA3C-37FF-4070-B471-BB4AF12A724A)

     BLK4: Alias(s):

          VenHw(4D00EF14-C4E0-426B-81B7-30A00A14AAD6)

     BLK5: Alias(s):

          VenHw(B6F44CC0-9E45-11DF-BE21-0002A5D5C51B)

     BLK0: Alias(s):

          PciRoot(0x0)/Pci(0x0,0x0)/Sata(0x0,0x0,0x0)

     BLK1: Alias(s):

          PciRoot(0x0)/Pci(0x0,0x0)/Sata(0x0,0x0,0x0)/HD(1,MBR,0x88683A7D,0x800,0x8F0C981)

     BLK2: Alias(s):

          PciRoot(0x0)/Pci(0x0,0x0)/Sata(0x0,0x0,0x0)/HD(2,MBR,0x88683A7D,0x8F0D800,0x8F0CB01)

 

I have done following inclusion for FAT and partitioning:

FatPkg/FatPei/FatPei.inf

FatPkg/EnhancedFatDxe/Fat.inf

MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf

MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf

MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.in

 

 

But FAT filesystem is not getting installed on HDD partitions.

One issue I could see is:

 

that AtaBusDxe code install BlockIo, BlockIo2 and DiskInfo protocols as pasted:

(from file MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBus.c)

 

Status = gBS->InstallMultipleProtocolInterfaces (

                  &AtaDevice->Handle,

                  &gEfiDevicePathProtocolGuid,

                  AtaDevice->DevicePath,

                  &gEfiBlockIoProtocolGuid,

                  &AtaDevice->BlockIo,

                  &gEfiBlockIo2ProtocolGuid,

                  &AtaDevice->BlockIo2,

                  &gEfiDiskInfoProtocolGuid,

                  &AtaDevice->DiskInfo,

                  NULL

                  );

 

 

Whereas in FatPkg which I am using for FAT filesystem installation use DiskIo and DiskIo2 protocols:

 

  Volume->DiskIo                      = DiskIo;

  Volume->DiskIo2                     = DiskIo2;

 

And use these to Open Fat formatted device.

 

Any clue, how to use FatPkg to install filesystem on SATA HDD?

 

Thanks and Regards,

Shaveta