Oh and ImageHandle and *SystemTable are passed into every EFI Driver and App when it is loaded and this is how the Driver gets access to EFI services, and can figured the location it was loaded from. 

Thanks,

Andrew Fish

On May 4, 2020, at 9:16 PM, Andrew Fish via groups.io <afish=apple.com@groups.io> wrote:

Jim,

Looks like InitializeLogo() [1] is the entry point to a DXE driver. The INF file for the driver gets parsed and used to construct the makefile. The entry point for thee driver is an application and there is some auto generated code that calls all the library constructors and the entry, thus the entry point to the driver can have an arbitrary name. 

To build this driver you add the path to the INF fileto your platform DSC file [2] to put it in your ROM you add it to the platform FDF file [2]. 

[1] git grep InitializeLogo
MdeModulePkg/Logo/Logo.c:95:InitializeLogo (
MdeModulePkg/Logo/LogoDxe.inf:19:  ENTRY_POINT                    = InitializeLogo

[2] git grep LogoDxe.inf -- *.dsc *.fdf
ArmVirtPkg/ArmVirtQemu.dsc:427:  MdeModulePkg/Logo/LogoDxe.inf
ArmVirtPkg/ArmVirtQemuKernel.dsc:366:  MdeModulePkg/Logo/LogoDxe.inf
EmulatorPkg/EmulatorPkg.dsc:338:  MdeModulePkg/Logo/LogoDxe.inf
EmulatorPkg/EmulatorPkg.fdf:182:INF  MdeModulePkg/Logo/LogoDxe.inf
MdeModulePkg/MdeModulePkg.dsc:212:  MdeModulePkg/Logo/LogoDxe.inf
OvmfPkg/OvmfPkgIa32.dsc:736:  MdeModulePkg/Logo/LogoDxe.inf
OvmfPkg/OvmfPkgIa32.fdf:294:INF MdeModulePkg/Logo/LogoDxe.inf
OvmfPkg/OvmfPkgIa32X64.dsc:749:  MdeModulePkg/Logo/LogoDxe.inf
OvmfPkg/OvmfPkgIa32X64.fdf:295:INF MdeModulePkg/Logo/LogoDxe.inf
OvmfPkg/OvmfPkgX64.dsc:746:  MdeModulePkg/Logo/LogoDxe.inf
OvmfPkg/OvmfPkgX64.fdf:295:INF MdeModulePkg/Logo/LogoDxe.inf
OvmfPkg/OvmfXen.dsc:557:  MdeModulePkg/Logo/LogoDxe.inf
OvmfPkg/OvmfXen.fdf:370:INF MdeModulePkg/Logo/LogoDxe.inf


Thanks,

Andrew Fish

On May 4, 2020, at 9:05 PM, jim slaughter <jim.slaughter@sage-micro.com> wrote:

Hello,

I am trying to display a logo during the uEFI boot.
Found logo.c file. New to this code base.
I assume I must call:
InitializeLogo (
  IN EFI_HANDLE               ImageHandle,
  IN EFI_SYSTEM_TABLE         *SystemTable
  )
 "entrypoint of this module" is in the commenting block.

Where do I find ImageHandle and SystemTable values???
What am I missing here?

I cannot find where InitializeLogo is called, as an example.
When I search for EFI_HANDLE I get a lot of hits.
Any help please. Thanks.

-- 
Jim Slaughter