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- onipc...@yandex.ru>wrote: > > My DEBUG prints uses <Library/DebugLib.h>. > > Even if all DEBUG prints turned off, "dh" command (UEFI shell) must print > > all device handles with registered protocols. > > But even driver binding and component name protocols (installed in > > entrypoint of my driver) not displayed. > > After "loadpcirom" this protocols displayed in "dh" output. > > > > Thanks, > > Vladimir. > > > > 06.03.2014, 18:04, "Andrew Fish" <af...@apple.com>: > > > On Mar 6, 2014, at 5:57 AM, Onipchuk Vladimir <v-onipc...@yandex.ru> > > > > wrote: > > >> My DEBUG print samples: > > >> > > >> DEBUG ((EFI_D_INFO, "SUPPORTED!\n")); > > > > > > EFI_D_INFO could be turned off on this platform. > > > > > >> or > > >> > > >> if (EFI_ERROR (Status)) { > > >> > > >> DEBUG((EFI_D_ERROR,"Install BLOCK_IO protocol error - %x\n",Status)); > > >> goto ON_ERROR; > > >> > > >> } > > > > > > Where is your driver sending DEBUG() prints? > > > > > > You can add this to the edk2 build command --report-file=build.og > > > > > > The build.log will tell you what library instances are getting used by > > > > your driver. > > > > > Thanks, > > > > > > Andrew Fish > > > > > >> Using Print() function in driver causes boot process freezing. > > >> > > >> 06.03.2014, 17:38, "Andrew Fish" <af...@apple.com>: > > >>> On Mar 6, 2014, at 3:27 AM, Onipchuk Vladimir <v-onipc...@yandex.ru> > > > > wrote: > > >>>> Neeraj, > > >>>> > > >>>> oh no, I mean checking on the non-problematic platform (DG41TX in > > > > my case). > > > > >>>> On the problematic platform, I can't even print debug message at > > > > the start of my code. So I think, my driver not executing at the platform > > initialization stage. > > > > >>> How are you routing your DEBUG prints, or are you using Print()? > > >>> > > >>> If you are using DEBUG() you need to look out for how you implement > > > > it. > > > > >>> These require the console to be connected, which can happen after > > > > your driver is loaded, or maybe StdErr is not set. > > > > https://svn.code.sf.net/p/edk2/code/trunk/edk2/MdePkg/Library/UefiDebugLi > > bConOut/ > > > > https://svn.code.sf.net/p/edk2/code/trunk/edk2/MdePkg/Library/UefiDebugLi > > bStdErr/ > > > > >>> This is not UEFI spec, or even PI spec it is the old Intel > > >>> Framework, > > > > so it might not exist everywhere. > > > > https://svn.code.sf.net/p/edk2/code/trunk/edk2/IntelFrameworkModulePkg/Li > > brary/PeiDxeDebugLibReportStatusCode/ > > > > >>> Thanks, > > >>> > > >>> Andrew Fish > > > > ------------------------------------------------------------------------- > > ----- > > > > >> Subversion Kills Productivity. Get off Subversion & Make the Move to > > > > Perforce. > > > > >> With Perforce, you get hassle-free workflows. Merge that actually > > >> works. Faster operations. Version large binaries. Built-in WAN > > >> optimization > > > > and the > > > > >> freedom to use Git, Perforce or both. Make the move to Perforce. > > > > http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clk > > trk > > > > >> _______________________________________________ > > >> edk2-devel mailing list > > >> edk2-devel@lists.sourceforge.net > > >> https://lists.sourceforge.net/lists/listinfo/edk2-devel > > > > > > , > > > > ------------------------------------------------------------------------- > > ----- > > > > > Subversion Kills Productivity. Get off Subversion & Make the Move to > > > > Perforce. > > > > > With Perforce, you get hassle-free workflows. Merge that actually > > > works. Faster operations. Version large binaries. Built-in WAN > > > optimization > > > > and the > > > > > freedom to use Git, Perforce or both. Make the move to Perforce. > > > > http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clk > > trk > > > > > , > > > _______________________________________________ > > > edk2-devel mailing list > > > edk2-devel@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/edk2-devel > > > > ------------------------------------------------------------------------- > > ----- Subversion Kills Productivity. Get off Subversion & Make the Move > > to Perforce. > > With Perforce, you get hassle-free workflows. Merge that actually works. > > Faster operations. Version large binaries. Built-in WAN optimization and > > the > > freedom to use Git, Perforce or both. Make the move to Perforce. > > > > http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clk > > trk _______________________________________________ > > edk2-devel mailing list > > edk2-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/edk2-devel -- ============================================================================= -Bill Paul (510) 749-2329 | Senior Member of Technical Staff, wp...@windriver.com | Master of Unix-Fu - Wind River Systems ============================================================================= "I put a dollar in a change machine. Nothing changed." - George Carlin ============================================================================= ------------------------------------------------------------------------------ Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large binaries. Built-in WAN optimization and the freedom to use Git, Perforce or both. Make the move to Perforce. http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel