Hi,

 

I have copied SCT and EFI shell in SD card.

Followed following link for running sct from SD card.

https://wiki.linaro.org/LEG/Engineering/Kernel/UEFI/SCT/HowTo

 

Now, on running sct binary I am facing “InitShellApp: Application not started from Shell” error.

 

What will be the reason behind?

 

“Shell_Full.efi” is taken from EdkShellBinPkg/FullShell/AArch64/Shell_Full.efi  path.

 

FS0:\SCT\> ls

Directory of: FS0:\SCT\

07/20/2015  09:31 <DIR>         4,096  .

07/20/2015  09:31 <DIR>             0  ..

07/20/2015  09:25             440,736  SCT.efi

07/20/2015  09:25              27,616  StallForKey.efi

07/20/2015  09:30 <DIR>         4,096  Application

07/20/2015  09:30 <DIR>         4,096  Data

07/20/2015  09:30 <DIR>         4,096  Dependency

07/20/2015  09:30 <DIR>         4,096  Ents

07/20/2015  09:30 <DIR>         4,096  Proxy

07/20/2015  09:30 <DIR>         4,096  Report

07/20/2015  09:30 <DIR>         4,096  SCRT

07/20/2015  09:30 <DIR>         4,096  Sequence

07/20/2015  09:30 <DIR>         4,096  Support

07/20/2015  09:30 <DIR>         8,192  Test

07/19/2015  01:23           1,047,296  Shell_Full.efi

          3 File(s)   1,515,648 bytes

         12 Dir(s)

 

FS0:\SCT\> SCT

InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B DFEAA440

add-symbol-file /proj/nmgsw_be/users/b46476/code/UEFI/ls1043a-uefi/Build/UefiSct/DEBUG_ARMGCC/AARCH64/SctPkg/TestInfrastructure/SCT/Framework/Sct/DEBUG/SCT.dll 0xDC040260

Loading driver at 0x000DC040000 EntryPoint=0x000DC040260 SCT.efi

InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF DF6C9018

InstallProtocolInterface: 752F3136-4E16-4FDC-A22A-E5F46812F4CA FFFFF7E0

InitShellApp: Application not started from Shell

remove-symbol-file /proj/nmgsw_be/users/b46476/code/UEFI/ls1043a-uefi/Build/UefiSct/DEBUG_ARMGCC/AARCH64/SctPkg/TestInfrastructure/SCT/Framework/Sct/DEBUG/SCT.dll 0xDC040260

FS0:\SCT\> 

 

 

 

Any help is appreciated.

 

 

Thanks & Regards

Meenakshi

From: Andrew Fish [mailto:afish@apple.com]
Sent: Wednesday, July 15, 2015 7:33 PM
To: Aggarwal Meenakshi-B46476
Cc: edk2-devel@lists.sourceforge.net
Subject: Re: [edk2] Filesystem support

 

 

On Jul 15, 2015, at 6:29 AM, Meenakshi Aggarwal <meenakshi.aggarwal@freescale.com> wrote:

 

Hi,

 

 

I need your help in running SCT from SD card on Freescale SoC.

 

 

I have built SCT and copied following images on SD card (formatted with FAT32), inserted this SD card in my board:

 

1.EdkShellBinPkg/FullShell/Arm/Shell_Full.efi

2.Build/UefiSct/DEBUG_ARMGCC/SctPackageAARCH64/AARCH64/*

 

 

 

On running shell I saw following entry:

UEFI Interactive Shell v2.1

EDK II

UEFI v2.40 (LS1043a Simulator EFI Jul 15 2015 16:55:13, 0x00000000)

Mapping table

      FS0: Alias(s):HD0mohuqyt:;BLK0:

          HD(-1225503552,175,0,0x20021BE11DF9E45,0xAFAFAFAF1BC5D5A5)

 

 

It is the hard drive device path. The UEFI spec defines these device path display formats in the “EFI Device Path Display Format Overview” section. 

 

HD(Partition,Type,Signature,Start, Size) 

HD(Partition,Type,Signature) (Display Only)

 

The Partition is an integer representing the partition number. It is optional and the default is 0. If Partition is 0, then Start and Size are prohibited.

The Type is an integer between 0-255 or else the keyword MBR (1) or GPT (2). The type is optional and the default is 2.

The Signature is an integer if Type is 1 or else GUID if Type is 2. The signature is required.

The Start is a 64-bit unsigned integer. It is prohibited if Partition is 0. Otherwise it is required.

The Size is a 64-bit unsigned integer. It is prohibited if Partition is 0. Otherwise it is required.

 

The SD spec defines the format to be an MBR partition with a single entry, that is formatted FAT32. SD XC is MBR formatted with exFAT :(. 

 

The partition driver should not bind to a malformed MBR (it produced the device path), so maybe this is memory corruption? 

https://svn.code.sf.net/p/edk2/code/trunk/edk2/MdeModulePkg/Universal/Disk/PartitionDxe/

 

This is the binary data structure being converted to text:

https://svn.code.sf.net/p/edk2/code/trunk/edk2/MdePkg/Include/Protocol/DevicePath.h

///
/// The Hard Drive Media Device Path is used to represent a partition on a hard drive.
///
typedef struct {
  EFI_DEVICE_PATH_PROTOCOL        Header;
  ///
  /// Describes the entry in a partition table, starting with entry 1.
  /// Partition number zero represents the entire device. Valid
  /// partition numbers for a MBR partition are [1, 4]. Valid
  /// partition numbers for a GPT partition are [1, NumberOfPartitionEntries].
  ///
  UINT32                          PartitionNumber;
  ///
  /// Starting LBA of the partition on the hard drive.
  ///
  UINT64                          PartitionStart;
  ///
  /// Size of the partition in units of Logical Blocks.
  ///
  UINT64                          PartitionSize;
  ///
  /// Signature unique to this partition:
  /// If SignatureType is 0, this field has to be initialized with 16 zeros.
  /// If SignatureType is 1, the MBR signature is stored in the first 4 bytes of this field.
  /// The other 12 bytes are initialized with zeros.
  /// If SignatureType is 2, this field contains a 16 byte signature.
  ///
  UINT8                           Signature[16];
  ///
  /// Partition Format: (Unused values reserved).
  /// 0x01 - PC-AT compatible legacy MBR.
  /// 0x02 - GUID Partition Table.
  ///
  UINT8                           MBRType;
  ///
  /// Type of Disk Signature: (Unused values reserved).
  /// 0x00 - No Disk Signature.
  /// 0x01 - 32-bit signature from address 0x1b8 of the type 0x01 MBR.
  /// 0x02 - GUID signature.
  ///
  UINT8                           SignatureType;
} HARDDRIVE_DEVICE_PATH;
 
#define MBR_TYPE_PCAT             0x01
#define MBR_TYPE_EFI_PARTITION_TABLE_HEADER 0x02
 
#define NO_DISK_SIGNATURE         0x00
#define SIGNATURE_TYPE_MBR        0x01
#define SIGNATURE_TYPE_GUID       0x02

Thanks,

 

Andrew Fish



 

I am not getting from where it is populating these values of HD().

 

 

Now on selecting FS0, I saw following prints:

Shell> fs0:

FS0:\> ls

Get RTC Year: 15 Mon: 07 Day: 15 Hour: 17 Min: 24 Sec: 59

Get DATE: 2015-07-15 TIME: 17:24:59

FSOpen: Open '.' Success

File Not Found

FS0:\>  

 

 

My UEFI binary has support of SD card, I can probe a card and its read, write and erase functionalities are working fine.

 

I want to execute SCT.efi using shell. Kindly help me with this

 

 

Along with the above issue, I am seeing following failures in OpenVolume() call:

 

FATDirSize: cluster chain corrupt

*OutputFileName 0x61

*OutputFileName 0x62

*OutputFileName 0x63

FatGrowEof: cluster chain corrupt

FatShrinkEof: cluster chain corrupt

 

 

What is the reason behind these prints?

 

 

Regards

Meenakshi

 

From: Olivier Martin [mailto:Olivier.Martin@arm.com] 
Sent: Tuesday, June 16, 2015 4:43 PM
To: edk2-devel@lists.sourceforge.net
Subject: Re: [edk2] Filesystem support

 

UEFI specification says ‘HD(Partition,Type,Signature,Start, Size)’.

These values are specific to you partition table.

 

gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath is specific to the ARM BDS. It is to create a default boot entry when you start your system for a first time.

It is not (necessary) relevant to boot Linux or run SCT on your platform.

 

I would say you have the appropriate list of EFI modules to get FAT support (if you already have SD support in your UEFI firmware).

 

 

From: Meenakshi Aggarwal [mailto:meenakshi.aggarwal@freescale.com] 
Sent: 16 June 2015 10:10
To: edk2-devel@lists.sourceforge.net
Subject: [edk2] Filesystem support

 

Hi All, 

 

 

I want to boot linux and run SCT from SD card.

 

I have seen BeagleBoard package code which is booting linux from SD.

 

I got confused with entry:

gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L"VenHw(B615F1F5-5088-43CD-809C-A16E52487D00)/HD(1,MBR,0x00000000,0x3F,0x19FC0)/zImage"

 

from where are 0x3F and 0x19FC0 came. Is it some default value for start address and size?

Do I need to create an FV entry for this?

 

 

Also what all I need to include in my dsc and fdf file to enable support of filesystem. I can see following listed files for filesystem support (reference : BeagleBoard)

 

Changes in FDF:    

#                                                                                           

    # FAT filesystem + GPT/MBR partitioning                                                     

    #                                                                                           

    INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf                                     

    INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf                               

    INF FatBinPkg/EnhancedFatDxe/Fat.inf                                                        

    INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf

 

Changes in DSC

#

# FAT filesystem + GPT/MBR partitioning

#                                                      

MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf

MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf

MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf

 

 

 

 

Thanks & regards

Meenakshi Aggarwal

                                                                                                                                                                                        


-- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2557590
ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2548782

------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel