public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Gao, Liming" <liming.gao@intel.com>
To: Andrew Fish <afish@apple.com>,
	"David A. Van Arnem" <dvanarnem@cmlab.biz>
Cc: "edk2-devel@ml01.01.org" <edk2-devel@ml01.01.org>
Subject: Re: Print from DXE_DRIVER
Date: Thu, 9 Feb 2017 02:16:24 +0000	[thread overview]
Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14D6D8C41@shsmsx102.ccr.corp.intel.com> (raw)
In-Reply-To: <765376CE-F36F-4A4F-9FB5-DDA7EC6B9975@apple.com>

You can use DebugLib, and link MdePkg\Library\UefiDebugLibConOut\UefiDebugLibConOut.inf to print error message to Console. 

DEBUG ((DEBUG_INFO, "Hello Workd\n"));

Thanks
Liming
-----Original Message-----
From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Andrew Fish
Sent: Thursday, February 9, 2017 9:05 AM
To: David A. Van Arnem <dvanarnem@cmlab.biz>
Cc: edk2-devel@ml01.01.org
Subject: Re: [edk2] Print from DXE_DRIVER


> On Feb 8, 2017, at 4:49 PM, David A. Van Arnem <dvanarnem@cmlab.biz> wrote:
> 
> 
> 
> On 02/08/2017 05:43 PM, Andrew Fish wrote:
>> 
>>> On Feb 8, 2017, at 2:10 PM, David A. Van Arnem <dvanarnem@cmlab.biz <mailto:dvanarnem@cmlab.biz>> wrote:
>>> 
> 
> <snip>
> 
>>> When I load the driver from the shell (load <drivername>.efi), I get a
>>> message indicating it loaded successfully, but no output from the
>>> Print() messages.  
>> 
>> You should be able to use shell commands to see if you driver is connected. 
> 
> dh output does show my <drivername>.efi at the end which I think
> indicates it is connected.
> 

dh is just showing handles and protocols not what happened with Driver Binding. So likely you are seeing that your driver got loaded. 

Run `drivers` or `devtree` to see the results of the connect.

>> 
>>> The documentation for the shell says load should test
>>> both the Supported() and Start() functions, so I would expect to see the
>>> output, but I am not sure I am using the correct library instances to
>>> accomplish this.  Is it possible to use Print() from a DXE_DRIVER, and
>>> which library instance should I use in the UefiCpuPkg.dsc file?
>> 
>> Print() is part of the UefiLib. The PrintLib vends sprintf kinds of things. 
>> 
>>> If not,
>>> would changing it to a UEFI_DRIVER help?  Any other recommendations?
>>> 
>> 
>> If you are publishing driver binding protocol you should be UEFI_DRIVER, if possible. 
>> 
>>> If there is an example in edk2 that does this that you could point me
>>> to, that would be sufficient as well.  Thanks!
>>> 
>> 
>> If  you want to write directly to the UEFI Console you can try this. Place it in the entry point of your driver in case you have some bug that is preventing your from registering the Driver Binding Protocol. 
>> 
>> gST->ConOut->OutputString (gST->ConOut, L"Hello World\n\r");
>> 
>> Make sure you use  L"" vs "" as Print takes a CHAR16 and %s also default to CHAR16 (not ASCII)
> 

Here is a write up on how Print is different than printf.

https://github.com/tianocore/edk2/blob/master/MdePkg/Include/Library/PrintLib.h#L26 <https://github.com/tianocore/edk2/blob/master/MdePkg/Include/Library/PrintLib.h#L26>

Thanks,

Andrew Fish

> I will try that, thank you!
> 
> Regards,
> David
> 
>> 
>> 
>> 
>> Thanks,
>> 
>> Andrew Fish
>> 
>> 
>>> -- 
>>> Regards,
>>> David Van Arnem
>>> Development Engineer IV
>>> Computer Measurement Laboratory, LLC
>>> 
>>> _______________________________________________
>>> edk2-devel mailing list
>>> edk2-devel@lists.01.org
>>> https://lists.01.org/mailman/listinfo/edk2-devel
>> 
>> _______________________________________________
>> edk2-devel mailing list
>> edk2-devel@lists.01.org
>> https://lists.01.org/mailman/listinfo/edk2-devel
>> 
> 
> -- 
> Regards,
> David Van Arnem
> Development Engineer IV
> Computer Measurement Laboratory, LLC

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


  reply	other threads:[~2017-02-09  2:16 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-08 22:10 Print from DXE_DRIVER David A. Van Arnem
2017-02-09  0:15 ` Laszlo Ersek
2017-02-09  0:41   ` David A. Van Arnem
2017-02-09  0:49     ` Andrew Fish
2017-02-09  0:43 ` Andrew Fish
2017-02-09  0:49   ` David A. Van Arnem
2017-02-09  1:04     ` Andrew Fish
2017-02-09  2:16       ` Gao, Liming [this message]
2017-02-09  2:55   ` Rebecca Cran
2017-02-09  2:59     ` Tim Lewis
2017-02-09 20:38       ` David A. Van Arnem

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=4A89E2EF3DFEDB4C8BFDE51014F606A14D6D8C41@shsmsx102.ccr.corp.intel.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