public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Andrew Fish <afish@apple.com>
To: Amit kumar <akamit91@hotmail.com>
Cc: "Marvin Häuser" <Marvin.Haeuser@outlook.com>,
	"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Subject: Re: writing EDK compatible application.
Date: Tue, 04 Jul 2017 14:30:40 -0700	[thread overview]
Message-ID: <8A90E2C6-B073-4DD2-B548-31275871C706@apple.com> (raw)
In-Reply-To: <DM5PR11MB157886B23CA8CCF1435D076EDCD70@DM5PR11MB1578.namprd11.prod.outlook.com>


> On Jul 4, 2017, at 11:13 AM, Amit kumar <akamit91@hotmail.com> wrote:
> 
> Hey,
> I just can find any spec on ConsoleControl protocol, can you tell what/where to refer ?


Amit,

It was defined as part of the Tiano stuff, so that is Intel Framework, and it did not make it to the PI spec or edk2 open source. 

The definition of the protocol is here. That should be enough documentation. 
https://github.com/tianocore/edk2/blob/master/EdkCompatibilityPkg/Foundation/Protocol/ConsoleControl/ConsoleControl.h

The entry point has never changed for (U)EFI, but remember in the edk2 the AutoGen.c code (build generated in the build output) actually calls library constructors and then calls your entry point. The issue I've seen trying to run edk2 code on older machines is the library constructor will error out and the App will not launch. 

If you want to make an Application that does not call the library constructors you need to name the entry point _ModuleEntryPoint, and don't list UefiApplicationEntryPoint in the [LibraryClasses] section of the INF file. Not to mention I'd leave off PcdLib too as that is an edk2 open source concept originally. 

Thanks,

Andrew Fish


> Amit
> On Jul 4, 2017, at 11:25 PM, Amit kumar <akamit91@hotmail.com <mailto:akamit91@hotmail.com><mailto:akamit91@hotmail.com <mailto:akamit91@hotmail.com>>> wrote:
> 
> Thanks for the suggestion Marvin, I will try switching to text mode.
> Amit
> On Jul 4, 2017, at 11:21 PM, Marvin Häuser <Marvin.Haeuser@outlook.com <mailto:Marvin.Haeuser@outlook.com><mailto:Marvin.Haeuser@outlook.com <mailto:Marvin.Haeuser@outlook.com>>> wrote:
> 
> Well, if EFI Shell 1.0 works, why not use it?
> Mac EFI exposes the ConsoleControl protocol, which lets you switch between text and graphics mode.
> That might be the reason your text outputs don't show, because graphics is the default mode on Mac EFI,
> though I could never test this myself as I lack the hardware.
> 
> Regards,
> Marvin.
> 
> -----Original Message-----
> From: Amit kumar [mailto:akamit91@hotmail.com <mailto:akamit91@hotmail.com>]
> Sent: Tuesday, July 4, 2017 7:46 PM
> To: Marvin H?user <Marvin.Haeuser@outlook.com <mailto:Marvin.Haeuser@outlook.com><mailto:Marvin.Haeuser@outlook.com <mailto:Marvin.Haeuser@outlook.com>>>
> Cc: edk2-devel@lists.01.org <mailto:edk2-devel@lists.01.org><mailto:edk2-devel@lists.01.org <mailto:edk2-devel@lists.01.org>>
> Subject: Re: [edk2] writing EDK compatible application.
> 
> Hi,
> Yes intact it’s MacBook, but is there another way to do it without UEFI shell.
> In edk2/shellpkgbin are 2.2+, even shell fails to execute on Mac.
> Although efi shell 1.0 works. Is there a to do it without shell ?
> Thanks
> Amit
> On Jul 4, 2017, at 11:05 PM, Marvin H?user
> <Marvin.Haeuser@outlook.com <mailto:Marvin.Haeuser@outlook.com><mailto:Marvin.Haeuser@outlook.com <mailto:Marvin.Haeuser@outlook.com>>> wrote:
> 
> Hey,
> 
> The entry point declarations and the calling conventions have not changed
> since EFI 1.10, though X64 was not a supported platform for 1.10 if I
> remember correctly.
> To be honest, I never saw an x64 EFI 1.10 implementation other than
> Apple's, though even if it still signals that version, it's actually more UEFI by
> now.
> I don't own a Mac, so if it's the platform you tested your app on, I can't tell
> you why it didn't work, but I would suggest you to run the app from an EFI
> Shell.
> 
> Regards,
> Marvin.
> 
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org <mailto:edk2-devel-bounces@lists.01.org>] On Behalf
> Of Amit kumar
> Sent: Tuesday, July 4, 2017 7:21 PM
> To: edk2-devel@lists.01.org <mailto:edk2-devel@lists.01.org><mailto:edk2-devel@lists.01.org <mailto:edk2-devel@lists.01.org>>
> Subject: [edk2] writing EDK compatible application.
> 
> 
> HI,
> 
> I have written a code (say helloworld program ) using edk2 framework,
> named the output efi file as BOOTx64.efi and placed it on a removable
> media in EFI/BOOT/ directory so that the application is listed in one time
> boot menu.
> When selected from boot menu it prints "Hello World".
> Which works as expected when tested on UEFI 2.3 and above platforms.
> But the same code fails to execute on EFI 1.10 platforms. Which i
> suppose is the problem with application entry point.
> Can somebody suggest me a way so that the application entry function
> can be compatible to both the platform. Even when written according
> to UEFI 2.5+ Spec ?
> 
> Thanks
> Amit
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org <mailto:edk2-devel@lists.01.org><mailto:edk2-devel@lists.01.org <mailto:edk2-devel@lists.01.org>>
> https://lists.01.org/mailman/listinfo/edk2-devel <https://lists.01.org/mailman/listinfo/edk2-devel>
> 
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org <mailto:edk2-devel@lists.01.org><mailto:edk2-devel@lists.01.org <mailto:edk2-devel@lists.01.org>>
> https://lists.01.org/mailman/listinfo/edk2-devel <https://lists.01.org/mailman/listinfo/edk2-devel>
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org <mailto:edk2-devel@lists.01.org>
> https://lists.01.org/mailman/listinfo/edk2-devel <https://lists.01.org/mailman/listinfo/edk2-devel>


  reply	other threads:[~2017-07-04 21:29 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-04 17:20 writing EDK compatible application Amit kumar
2017-07-04 17:35 ` Marvin H?user
2017-07-04 17:46   ` Amit kumar
2017-07-04 17:51     ` Marvin Häuser
2017-07-04 17:55       ` Amit kumar
2017-07-04 18:13         ` Amit kumar
2017-07-04 21:30           ` Andrew Fish [this message]
2017-07-04 20:10 ` Laszlo Ersek
2017-07-05 12:24   ` Amit kumar
2017-07-05 12:58   ` Rod Smith

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8A90E2C6-B073-4DD2-B548-31275871C706@apple.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox