Some information for the first experiment.
Follow the UEFI spec, gEfiGlobalVariableGuid is reserved for variables defined 
in UEFI spec.
Suggestion to use another defined GUID for your TEST variable set experiment, 
for example, gEfiCallerIdGuid.

Thanks,
Star
-----Original Message-----
From: Onipchuk Vladimir [mailto:v-onipc...@yandex.ru] 
Sent: Tuesday, March 11, 2014 4:43 PM
To: Bill Paul; edk2-devel@lists.sourceforge.net
Subject: Re: [edk2] PCI OpROM driver

Ok, I'm finally realized, that my driver doesn't start on the DH67BL ( 
http://www.intel.com/content/www/us/en/motherboards/desktop-motherboards/desktop-board-dh67bl.html
 )

My experiments:
1) This code at the Entrypoint:

>  [...]
>
>      UINTN msgSize;
>      CHAR16 msg[] = L"Hello, is this thing on...";
>
>      msgSize = StrLen (msg) * sizeof(CHAR16);
>
>      gRT->SetVariable (L"TEST", &gEfiGlobalVariableGuid,
>          EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS |
>          EFI_VARIABLE_RUNTIME_ACCESS, msgSize, msg);
>  [...]

Variable TEST not found at dmpstore output.

2) This code at the Entrypoint:

  gRT->ResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL);
  CpuDeadLoop ();

doesn't reboot my PC.

3) No any messages at the boot screen.

On the DG41TX motherboard all 3 methods works fine.

DH67BL has old-style BIOS Setup. 
So, "UEFI Setup -> PCI device->  <BDF>->Option Rom Execution " option isn't 
present in the BIOS settings. 
"UEFI Boot -> Enable", and all optimizations disabled, of course.

i'm no idea, what i do wrong...
Maybe reason in platform policy? 


07.03.2014, 22:08, "Bill Paul" <wp...@windriver.com>:

>  Of all the gin joints in all the towns in all the world, Neeraj 
> Ladkani had to
>  walk into mine at 00:16:26 on Friday 07 March 2014 and say:
>>   very basic input... sometime on specific platforms, PCIe oprom 
>> execution is
>>   disabled by default , please check in UEFI Setup -> PCI device->
>>   <BDF>->Option Rom Execution might be disabled.
>  In the same vein, I've found that some systems have an option to set 
> the PCI
>  option ROM priority. That is, a device can have multiple option ROM 
> images,
>  and if it has both a legacy BIOS ROM and a UEFI ROM, the priority 
> setting lets
>  you choose which one is selected. (Obviously this only applies to 
> firmware
>  with CSM support.)
>
>  Another way to check if your driver is even being executed is to add 
> some code
>  do your driver entry point that creates an environment variable in 
> the
>  datastore. Something like this:
>
>  #include <Uefi.h>
>  #include <Library/UefiDriverEntryPoint.h>
>  #include <Library/UefiLib.h>
>  #include <Library/UefiRuntimeServicesTableLib.h>
>  #include <Guid/GlobalVariable.h>
>
>  [...]
>
>      UINTN msgSize;
>      CHAR16 msg[] = L"Hello, is this thing on...";
>
>      msgSize = StrLen (msg) * sizeof(CHAR16);
>
>      gRT->SetVariable (L"TEST", &gEfiGlobalVariableGuid,
>          EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS |
>          EFI_VARIABLE_RUNTIME_ACCESS, msgSize, msg);
>  [...]
>
>  Do this first thing in your driver's entry point function. Later, 
> when you get
>  to the UEFI shell prompt, check to see if the TEST variable was 
> created using
>  the dmpstore command:
>
>  Shell> dmpstore TEST
>
>  If it worked, you should see the variable and a dump of its contents 
> (it'll do
>  a hex dump so the message "Hello, is this thing on..." in unicode 
> should be
>  clearly evident). This will tell you if your driver entry point is 
> actually
>  being called.
>
>  If you don't see the message, your driver isn't being run for some 
> reason. If
>  you do, then it's being run, but failing to register itself.
>
>  -Bill
>>   Thanks
>>   Neeraj
>>
>>   On Fri, Mar 7, 2014 at 1:25 PM, Onipchuk Vladimir <v-

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the 
definitive new guide to graph databases and their applications. Written by 
three acclaimed leaders in the field, this first edition is now available. 
Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to