Re: [edk2] location of OvmfVideo.rom file?
Hello Laszlo, Many thanks. The readme says the video is no longer being built. I simply ignored it and did the rest of the procedure on http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=How_to_run_OVMF#Run_QEMU_using_OVMF and I could get a UEFI shell. Oddly, the ls/dir command does not work. Other commands do work though. Thank you for the info. John On Wed, Mar 5, 2014 at 10:01 AM, Laszlo Ersek ler...@redhat.com wrote: On 03/05/14 18:30, John Davis wrote: Hello I'm building the Ovmf code as part of the edk2. The website mentions OvmfVideo.rom in the install procedure for working with Qemu. Where do I get this file? My build made a Ovmf.fv so I think its working for me. Please search the README for this file name. On a related note. How do I search all the edk2 mailing lists? Clicking on each month in the sourceforge archive and browsing through the mail is tedious. Is there a way to search the entire archive? One example: go to http://search.gmane.org/, and enter gmane.comp.bios.tianocore.devel as group. The first expression to test it with could be OvmfVideo.rom :) Laszlo -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- 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=122218951iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] DevicePathToStr
Hello Brian, That is a good explanation and guideline. Many thanks. I'll add this to my notes. John On Wed, Feb 26, 2014 at 7:25 AM, Brian J. Johnson bjohn...@sgi.com wrote: On 02/25/2014 07:14 PM, John Davis wrote: Hello Jaben, No I did not. Its odd. Sometimes you add packages and it seems to compile and link. Other times I have to add a library package. In this case, I added the GenericBdsLib in the [LibraryClasses] and now it links. Many thanks. I'll look into your suggestion on the other routine to get the path. Sometimes you get lucky. If you call a function in library A, and you have library B in your [LibraryClasses], and library B has library A in its [LibraryClasses], then your code will be linked against both library A and library B. So you won't get a linker error. But if library B didn't already depend on library A, then your module wouldn't be linked against library A, and you'd get an error. It's best to list in your .inf file all the library classes which your code calls directly. The rule of thumb is that if you include a library's header file (#include Library/SomeLib.h), you should list that library class in your [LibraryClasses]. The build system is smart enough to handle dependencies, remove redundant items, etc. -- Brian I have discovered that all human evil comes from this, man's being unable to sit still in a room. -- Blaise Pascal -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
[edk2] Locating a file in the file system
Hello Is there an example someplace for accessing a file in the filesystem? I would like to be able to read a file into a buffer as a simple exercise. I saw the earlier notes about doing this via stdlib/posix api calls. I figure there is a similar method to do this via uefi api. Later I want to be able to locate a .fv file for use by the firmware volume routines. On a related note, how do you folks find routines? I'm doing massive greps though the header files trying to find routines which have a similar name to what I am doing. I'm also using google to search but that is hit and miss. For example, google UEFI file open gives me results about opening a .efi file via explorer. That is not what I want to do. -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] Locating a file in the file system
I wonder if you have them in a specific folder and that is why they open correctly for you. On Wed, Feb 26, 2014 at 11:55 AM, Andrew Fish af...@apple.com wrote: On Feb 26, 2014, at 11:30 AM, John Davis davi...@gmail.com wrote: Hello Andrew, The link there has a second link which says: Looking for the latest version? *Download UDK2010.SR1.UP1.P1.Complete.MyWorkSpace.zip (88.1 MB) http://sourceforge.net/projects/edk2/files/latest/download?source=files* *When I downloaded that zip file it has a lot of .chm files in the zip file. The .chm files look corrupted. You can see nodes on the left in the microsoft help viewer but the actual pages are blank and will say an error has occured.* I can read the .chm files on my Mac, but I had to download a CHM reading App. It looks like these are just built from the source code via oxygen. At some point in the past there was a Library doc for the MdePkg, I’m not sure where that as at this point. I don’t see it under: http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=EDK_II_User_Documentation Thanks, Andrew Fish *John* On Wed, Feb 26, 2014 at 10:50 AM, Andrew Fish af...@apple.com wrote: On Feb 26, 2014, at 10:30 AM, John Davis davi...@gmail.com wrote: Hello Is there an example someplace for accessing a file in the filesystem? I would like to be able to read a file into a buffer as a simple exercise. I saw the earlier notes about doing this via stdlib/posix api calls. I figure there is a similar method to do this via uefi api. Later I want to be able to locate a .fv file for use by the firmware volume routines. On a related note, how do you folks find routines? I'm doing massive greps though the header files trying to find routines which have a similar name to what I am doing. I'm also using google to search but that is hit and miss. For example, google UEFI file open gives me results about opening a .efi file via explorer. That is not what I want to do. There are Library documents here you can use: http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=EDK_II_Libraries_and_Helper_files -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic
Re: [edk2] Locating a file in the file system
Ahh, I see the problem. All the zip files in the directories need to be unzipped first. once I did that, I could open the .chm files. On Wed, Feb 26, 2014 at 12:03 PM, John Davis davi...@gmail.com wrote: I wonder if you have them in a specific folder and that is why they open correctly for you. On Wed, Feb 26, 2014 at 11:55 AM, Andrew Fish af...@apple.com wrote: On Feb 26, 2014, at 11:30 AM, John Davis davi...@gmail.com wrote: Hello Andrew, The link there has a second link which says: Looking for the latest version? *Download UDK2010.SR1.UP1.P1.Complete.MyWorkSpace.zip (88.1 MB) http://sourceforge.net/projects/edk2/files/latest/download?source=files* *When I downloaded that zip file it has a lot of .chm files in the zip file. The .chm files look corrupted. You can see nodes on the left in the microsoft help viewer but the actual pages are blank and will say an error has occured.* I can read the .chm files on my Mac, but I had to download a CHM reading App. It looks like these are just built from the source code via oxygen. At some point in the past there was a Library doc for the MdePkg, I’m not sure where that as at this point. I don’t see it under: http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=EDK_II_User_Documentation Thanks, Andrew Fish *John* On Wed, Feb 26, 2014 at 10:50 AM, Andrew Fish af...@apple.com wrote: On Feb 26, 2014, at 10:30 AM, John Davis davi...@gmail.com wrote: Hello Is there an example someplace for accessing a file in the filesystem? I would like to be able to read a file into a buffer as a simple exercise. I saw the earlier notes about doing this via stdlib/posix api calls. I figure there is a similar method to do this via uefi api. Later I want to be able to locate a .fv file for use by the firmware volume routines. On a related note, how do you folks find routines? I'm doing massive greps though the header files trying to find routines which have a similar name to what I am doing. I'm also using google to search but that is hit and miss. For example, google UEFI file open gives me results about opening a .efi file via explorer. That is not what I want to do. There are Library documents here you can use: http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=EDK_II_Libraries_and_Helper_files -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- John F. Davis 6
[edk2] any idea why LocateHandleBuffer would fail with NT32?
I'm trying to mimic some existing code. I have gEfiFirmwareVolumeProtocolGuid in my .efi [Protocols] section and previous gBS-HandleProtocol calls work. EFI_STATUSStatus; UINTN HandleCount; EFI_HANDLE *HandleBuffer; // MdePkg/Include/Uefi/UefiSpec.h has a struct for BootServices which is of type EFI_BOOT_SERVICES // I think gBS is is a pointer to this table. Not only does it have a entry for HandleProtocol, it also // has a entry for LocateHandleBuffer. Perhaps that will get me to the routine which has types similar to the firmware volumes. // Status = gBS-LocateHandleBuffer(ByProtocol, gEfiFirmwareVolumeProtocolGuid, NULL, HandleCount, HandleBuffer); Print(LStatus = %d\n, Status); ASSERT_EFI_ERROR (Status); This code when run, will fail on the assert line with the following status in the console. ASSERT_EFI_ERROR (Status = Not Found) -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] any idea why LocateHandleBuffer would fail with NT32?
Yes indeed that fixed it. Many thanks. Includes for .c #include Protocol/FirmwareVolume2.h Api call Status = gBS-HandleProtocol (ImageHandle, gEfiLoadedImageProtocolGuid, (VOID **)LoadedImage); .inf entry [ Protocols ] gEfiFirmwareVolume2ProtocolGuid On Wed, Feb 26, 2014 at 4:36 PM, Andrew Fish af...@apple.com wrote: On Feb 26, 2014, at 4:22 PM, John Davis davi...@gmail.com wrote: I'm trying to mimic some existing code. I have gEfiFirmwareVolumeProtocolGuid in my .efi [Protocols] section and previous gBS-HandleProtocol calls work. EFI_STATUS Status; UINTN HandleCount; EFI_HANDLE *HandleBuffer; // MdePkg/Include/Uefi/UefiSpec.h has a struct for BootServices which is of type EFI_BOOT_SERVICES // I think gBS is is a pointer to this table. Not only does it have a entry for HandleProtocol, it also // has a entry for LocateHandleBuffer. Perhaps that will get me to the routine which has types similar to the firmware volumes. // Status = gBS-LocateHandleBuffer(ByProtocol, gEfiFirmwareVolumeProtocolGuid, NULL, HandleCount, HandleBuffer); Print(LStatus = %d\n, Status); ASSERT_EFI_ERROR (Status); This code when run, will fail on the assert line with the following status in the console. ASSERT_EFI_ERROR (Status = Not Found) Your system is not a Tiano/IntelFramework system (older EDK code is like this) so it does not produce this protocol. The version if the PI spec is called gEfiFirmwareVolume2ProtocolGuid. https://svn.code.sf.net/p/edk2/code/trunk/edk2/MdePkg/Include/Protocol/FirmwareVolume2.h Thanks, Andrew Fish -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
[edk2] DevicePathToStr
Hello I see some code which uses DevicePathToStr. When I do a grep on it, I see it a few include files. 1. IntelFrameworkModulePkg 2. OvmfPkg 3. SecruityPkg I am working with the NT32 emulator so I'm guessing that I don't need the ones from source 2 and 3. However, when I try to include the header file for #include Library/GenericBdsLib.h // DevicePathToStr from the IntelFrameworkModulePkg it fails to compile. I also noticed that there is a .c file in MdeModulePkg (PlatDriOverrideDxe.c) which uses this routine. I was thinking that maybe there is some other way to get access to it, but I don't know. I don't see it any other header files. Any advice on how to use this routine? -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] DevicePathToStr
Hmm. That is what I did to begin with. Here are my includes and my .inf. Now, I am really puzzled. When I pasted the error from the build below, I noticed the error is actually in the code I used as a model for this app. How could this app cause the other app which used to build to fail? - #include Uefi.h #include Pi/PiFirmwareFile.h #include Library/DebugLib.h // ASSERT_EFI_ERROR #include Protocol/LoadedImage.h // EFI_LOADED_IMAGE_PROTOCOL #include Pi/PiFirmwareVolume.h #include Library/PcdLib.h #include Library/UefiLib.h #include Library/UefiApplicationEntryPoint.h #include Library/UefiBootServicesTableLib.h #include Library/UefiRuntimeServicesTableLib.h #include Protocol/FirmwareVolume.h #include Library/GenericBdsLib.h // DevicePathToStr - some snipped [Packages] MdePkg/MdePkg.dec MdeModulePkg/MdeModulePkg.dec IntelFrameworkPkg/IntelFrameworkPkg.dec IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec [LibraryClasses] UefiApplicationEntryPoint UefiLib PcdLib [ Protocols ] gEfiLoadedImageProtocolGuid gEfiDevicePathToTextProtocolGuid [FeaturePcd] gEfiMdeModulePkgTokenSpaceGuid.PcdMyFindRomPrintEnable [Pcd] ## Valid when gEfiMdeModulePkgTokenSpaceGuid.PcdMyFindRomPrintEnable gEfiMdeModulePkgTokenSpaceGuid.PcdMyFindRomPrintString || gEfiMdeModulePkgTokenSpaceGuid.PcdMyFindRomPrintEnable ## Valid when gEfiMdeModulePkgTokenSpaceGuid.PcdMyFindRomPrintEnable gEfiMdeModulePkgTokenSpaceGuid.PcdMyFindRomPrintTimes || gEfiMdeModulePkgTokenSpaceGuid.PcdMyFindRomPrintEnable -- This is the error: MyFindRom.c GenFw -e UEFI_APPLICATION -o c:\fw\edk2\Build\NT32IA32\DEBUG_VS2010x86\IA32\MdeModulePkg\Application\HelloWorld\HelloWorld\DEBUG\HelloWorld.efi c:\fw\edk2\Build\ DEBUG_VS2010x86\IA32\MdeModulePkg\Application\HelloWorld\HelloWorld\DEBUG\HelloWorld.dll C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\bin\link.exe /OUT:c:\fw\edk2\Build\NT32IA32\DEBUG_VS2010x86\IA32\Nt32Pkg\WinNtSimpleFileSystemDxe\WinNtSim stemDxe\DEBUG\WinNtSimpleFileSystemDxe.dll /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /D :_ModuleEntryPoint /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG /EXPORT:InitializeDriver=_ModuleEntryPoint /BASE:0x1 /ALIGN:4096 /FILEALIGN:40 STEM:CONSOLE @c:\fw\edk2\Build\NT32IA32\DEBUG_VS2010x86\IA32\Nt32Pkg\WinNtSimpleFileSystemDxe\WinNtSimpleFileSystemDxe\OUTPUT\static_library_files.lst copy /y c:\fw\edk2\Build\NT32IA32\DEBUG_VS2010x86\IA32\MdeModulePkg\Application\HelloWorld\HelloWorld\DEBUG\HelloWorld.efi c:\fw\edk2\Build\NT32IA32\DEBUG_VS2010x8 eModulePkg\Application\HelloWorld\HelloWorld\OUTPUT c:\fw\edk2\IntelFrameworkModulePkg\Include\Library/GenericBdsLib.h(239) : error C2143: syntax error : missing ')' before '*' c:\fw\edk2\IntelFrameworkModulePkg\Include\Library/GenericBdsLib.h(239) : error C2143: syntax error : missing '{' before '*' c:\fw\edk2\IntelFrameworkModulePkg\Include\Library/GenericBdsLib.h(240) : error C2059: syntax error : ')' c:\fw\edk2\IntelFrameworkModulePkg\Include\Library/GenericBdsLib.h(240) : warning C4431: missing type specifier - int assumed. Note: C no longer supports default-int c:\fw\edk2\IntelFrameworkModulePkg\Include\Library/GenericBdsLib.h(240) : warning C4218: nonstandard extension used : must specify at least a storage class or a type 1 file(s) copied. C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\bin\link.exe /OUT:c:\fw\edk2\Build\NT32IA32\DEBUG_VS2010x86\IA32\Nt32Pkg\WinNtGopDxe\WinNtGopDxe\DEBUG\Win dll /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:_ModuleEntryPoint /SUBSYSTEM: SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG /EXPORT:InitializeDriver=_ModuleEntryPoint /BASE:0x1 /ALIGN:4096 /FILEALIGN:4096 /SUBSYSTEM:CONSOLE @c:\fw\edk2\Buil 2\DEBUG_VS2010x86\IA32\Nt32Pkg\WinNtGopDxe\WinNtGopDxe\OUTPUT\static_library_files.lst copy /y c:\fw\edk2\Build\NT32IA32\DEBUG_VS2010x86\IA32\MdeModulePkg\Application\HelloWorld\HelloWorld\DEBUG\HelloWorld.efi c:\fw\edk2\Build\NT32IA32\DEBUG_VS2010x8 Creating library c:\fw\edk2\Build\NT32IA32\DEBUG_VS2010x86\IA32\Nt32Pkg\WinNtSimpleFileSystemDxe\WinNtSimpleFileSystemDxe\DEBUG\WinNtSimpleFileSystemDxe.lib and object 2\Build\NT32IA32\DEBUG_VS2010x86\IA32\Nt32Pkg\WinNtSimpleFileSystemDxe\WinNtSimpleFileSystemDxe\DEBUG\WinNtSimpleFileSystemDxe.exp Generating code 1 file(s) copied. NMAKE : fatal error U1077: 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\bin\cl.exe' : return code '0x2' Stop. copy /y c:\fw\edk2\Build\NT32IA32\DEBUG_VS2010x86\IA32\MdeModulePkg\Application\HelloWorld\HelloWorld\DEBUG\*.map c:\fw\edk2\Build\NT32IA32\DEBUG_VS2010x86\IA32\Md g\Application\HelloWorld\HelloWorld\OUTPUT -- Flow-based
Re: [edk2] DevicePathToStr
That fails as well. Creating library c:\fw\edk2\Build\NT32IA32\DEBUG_VS2010x86\IA32\MdeModulePkg\Application\MyFindRom\MyFindRom\DEBUG\MyFindRom.lib and object c:\fw\edk2\Build\NT32IA32\DEBUG_VS201 0x86\IA32\MdeModulePkg\Application\MyFindRom\MyFindRom\DEBUG\MyFindRom.exp MyFindRom.lib(MyFindRom.obj) : error LNK2001: unresolved external symbol _DevicePathToStr c:\fw\edk2\Build\NT32IA32\DEBUG_VS2010x86\IA32\MdeModulePkg\Application\MyFindRom\MyFindRom\DEBUG\MyFindRom.dll : fatal error LNK1120: 1 unresolved externals NAMAKE : fatal error U1077: 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\bin\link.exe' : return code '0x460' utoGen.c Stop. #include Uefi.h #include PiPei.h #include Pi/PiFirmwareFile.h #include Library/DebugLib.h // ASSERT_EFI_ERROR #include Protocol/LoadedImage.h // EFI_LOADED_IMAGE_PROTOCOL #include Pi/PiFirmwareVolume.h #include Library/PcdLib.h #include Library/UefiLib.h #include Library/UefiApplicationEntryPoint.h #include Library/UefiBootServicesTableLib.h #include Library/UefiRuntimeServicesTableLib.h #include Protocol/FirmwareVolume.h #include Library/GenericBdsLib.h // DevicePathToStr On Tue, Feb 25, 2014 at 4:43 PM, Carsey, Jaben jaben.car...@intel.comwrote: Depending on what you are doing with the resultant string ConvertDevicePathToText from DevicePathLib (header file located in MdePkg) is a much more common method to convert a device path to a text. This also supports some options on some conversion results. -Jaben -Original Message- From: Bill Paul [mailto:wp...@windriver.com] Sent: Tuesday, February 25, 2014 4:24 PM To: edk2-devel@lists.sourceforge.net Subject: Re: [edk2] DevicePathToStr Of all the gin joints in all the towns in all the world, John Davis had to walk into mine at 16:10:15 on Tuesday 25 February 2014 and say: Hello I see some code which uses DevicePathToStr. When I do a grep on it, I see it a few include files. 1. IntelFrameworkModulePkg 2. OvmfPkg 3. SecruityPkg I am working with the NT32 emulator so I'm guessing that I don't need the ones from source 2 and 3. However, when I try to include the header file for #include Library/GenericBdsLib.h // DevicePathToStr from the IntelFrameworkModulePkg it fails to compile. I also noticed that there is a .c file in MdeModulePkg (PlatDriOverrideDxe.c) which uses this routine. I was thinking that maybe there is some other way to get access to it, but I don't know. I don't see it any other header files. Any advice on how to use this routine? I'm not certain this is the right way to do it, but what I did was to edit my .inf file and add the following line under the [Packages] section: IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec Then I was able to include Library/GenericBdsLib.h in my code and use DevicePathToStr() without any issue. -Bill -- = -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 = -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one
Re: [edk2] DevicePathToStr
Hello Jaben, No I did not. Its odd. Sometimes you add packages and it seems to compile and link. Other times I have to add a library package. In this case, I added the GenericBdsLib in the [LibraryClasses] and now it links. Many thanks. I'll look into your suggestion on the other routine to get the path. Many thanks John -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] DevicePathToStr
Hello Andrew, Thanks, I appreciate the pointer. FWIW, I have also learned based upon Bill Pauls previous Moo code sample, you don't need to put apps in packages. I was using the MdeModulePkg/Application/HelloWorld/ directory as a source. I got tired of having to stop the emulator each time I made a change to my code in order for it to build. Consquently, I learned you can do this: 1. Create you app at top level directory. ex. MyFindRom2/MyFindRom2.inf and .c 2. Add the .inf to Nt32Pkg/Nt32Pkg.dsc 3. Build all 4. Build run 5. Run app via MyFindRom2 6. Make change to app 7. Build app via build -m MyFindRom2\MyFindRom2.inf 8. return to emulator and run the new app without having to shutdown the emulator. Bill was building a completely new package with a .dsc. I am just building a component using a .inf. I believe it was you who told me previously about the contents of a .fdf and .dsc file. Thanks again John On Tue, Feb 25, 2014 at 5:55 PM, Andrew Fish af...@apple.com wrote: On Feb 25, 2014, at 4:46 PM, Bill Paul wp...@windriver.com wrote: Of all the gin joints in all the towns in all the world, John Davis had to walk into mine at 16:34:49 on Tuesday 25 February 2014 and say: Hmm. That is what I did to begin with. Here are my includes and my .inf. Now, I am really puzzled. When I pasted the error from the build below, I noticed the error is actually in the code I used as a model for this app. How could this app cause the other app which used to build to fail? - #include Uefi.h Try adding #include PiPei.h To be pedantic you would want #include PiDxe.h, and then you don’t need Uefi.h I’ll explain what is going on…. UEFI spec replaces legacy BIOS and is an interface specification that talks to Option ROMs, Applications, and OS Loaders. It does not go into how the firmware is constructed internally. The PI spec is a a standaard way to construct firmware based on the Platform Initialization specifications. A UEFI platform does not have to support PI, but a PI platform supports UEFI. PEI - is Pre EFI Initialization. This is the IA32 code that turns on memory and jumps to X64 mode (on a typical PC). The DXE Phase is the Driver Execution Phase. The DXE Core produces the EFI services. The general rule of thumb is match your module type: PEIM - #include PiPei.h DXE_DRIVER - #include PiDxe.h UEFI_DRIVER - #include Uefi.h UEFI_APPLICATION - #include Uefi.h If you need to write an application that accesses things PI (it may not run everywhere) you can #include PiDxe.h in place of Uefi.h as this will also include the main stuff from the UEFI spec. https://svn.code.sf.net/p/edk2/code/trunk/edk2/MdePkg/Include/PiDxe.h #ifndef __PI_DXE_H__ #define __PI_DXE_H__ #include Uefi/UefiBaseType.h #include Uefi/UefiSpec.h #include Pi/PiDxeCis.h #endif Thanks, Andrew Fish here. The compiler is complaining because the EFI_BOOT_MODE macro isn't defined. It's define in PiBootMode.h, which gets pulled in if you use the above #include. That's how I dealt with this in my code at any rate. -Bill #include Pi/PiFirmwareFile.h #include Library/DebugLib.h // ASSERT_EFI_ERROR #include Protocol/LoadedImage.h // EFI_LOADED_IMAGE_PROTOCOL #include Pi/PiFirmwareVolume.h #include Library/PcdLib.h #include Library/UefiLib.h #include Library/UefiApplicationEntryPoint.h #include Library/UefiBootServicesTableLib.h #include Library/UefiRuntimeServicesTableLib.h #include Protocol/FirmwareVolume.h #include Library/GenericBdsLib.h // DevicePathToStr - some snipped [Packages] MdePkg/MdePkg.dec MdeModulePkg/MdeModulePkg.dec IntelFrameworkPkg/IntelFrameworkPkg.dec IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec [LibraryClasses] UefiApplicationEntryPoint UefiLib PcdLib [ Protocols ] gEfiLoadedImageProtocolGuid gEfiDevicePathToTextProtocolGuid [FeaturePcd] gEfiMdeModulePkgTokenSpaceGuid.PcdMyFindRomPrintEnable [Pcd] ## Valid when gEfiMdeModulePkgTokenSpaceGuid.PcdMyFindRomPrintEnable gEfiMdeModulePkgTokenSpaceGuid.PcdMyFindRomPrintString || gEfiMdeModulePkgTokenSpaceGuid.PcdMyFindRomPrintEnable ## Valid when gEfiMdeModulePkgTokenSpaceGuid.PcdMyFindRomPrintEnable gEfiMdeModulePkgTokenSpaceGuid.PcdMyFindRomPrintTimes || gEfiMdeModulePkgTokenSpaceGuid.PcdMyFindRomPrintEnable -- This is the error: MyFindRom.c GenFw -e UEFI_APPLICATION -o c:\fw\edk2\Build\NT32IA32\DEBUG_VS2010x86\IA32\MdeModulePkg\Application\Hel loWorld\HelloWorld\DEBUG\HelloWorld.efi c:\fw\edk2\Build\ DEBUG_VS2010x86\IA32\MdeModulePkg\Application\HelloWorld\HelloWorld\DEBUG\H elloWorld.dll C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\bin\link.exe /OUT:c:\fw\edk2\Build\NT32IA32\DEBUG_VS2010x86\IA32\Nt32Pkg\WinNtSimpleFile SystemDxe\WinNtSim stemDxe\DEBUG\WinNtSimpleFileSystemDxe.dll /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
Re: [edk2] DevicePathToStr
About the debugger. I did not know that. I had set a breakpoint in the uefi source back when you told me about the load address a while back. I'll try to debug an app using similar method. On Feb 25, 2014 6:10 PM, Andrew Fish af...@apple.com wrote: On Feb 25, 2014, at 6:03 PM, John Davis davi...@gmail.com wrote: Hello Andrew, Thanks, I appreciate the pointer. FWIW, I have also learned based upon Bill Pauls previous Moo code sample, you don't need to put apps in packages. I was using the MdeModulePkg/Application/HelloWorld/ directory as a source. I got tired of having to stop the emulator each time I made a change to my code in order for it to build. Consquently, I learned you can do this: 1. Create you app at top level directory. ex. MyFindRom2/MyFindRom2.inf and .c 2. Add the .inf to Nt32Pkg/Nt32Pkg.dsc 3. Build all 4. Build run 5. Run app via MyFindRom2 6. Make change to app 7. Build app via build -m MyFindRom2\MyFindRom2.inf 8. return to emulator and run the new app without having to shutdown the emulator. Yep that works. You can load Apps or Drivers from the EFI shell from a USB key. Since the emulator makes some magic OS directories show up as EFI drives in the emulator you can just copy things over there. Thanks, Andrew Fish PS The source level debugging is based on finding the PE/COFF debug directory and with VC++ that will point to your PDB file. So as long as you are running on the system where you built the App you should get source level debug. Bill was building a completely new package with a .dsc. I am just building a component using a .inf. I believe it was you who told me previously about the contents of a .fdf and .dsc file. Thanks again John On Tue, Feb 25, 2014 at 5:55 PM, Andrew Fish af...@apple.com wrote: On Feb 25, 2014, at 4:46 PM, Bill Paul wp...@windriver.com wrote: Of all the gin joints in all the towns in all the world, John Davis had to walk into mine at 16:34:49 on Tuesday 25 February 2014 and say: Hmm. That is what I did to begin with. Here are my includes and my .inf. Now, I am really puzzled. When I pasted the error from the build below, I noticed the error is actually in the code I used as a model for this app. How could this app cause the other app which used to build to fail? - #include Uefi.h Try adding #include PiPei.h To be pedantic you would want #include PiDxe.h, and then you don’t need Uefi.h I’ll explain what is going on…. UEFI spec replaces legacy BIOS and is an interface specification that talks to Option ROMs, Applications, and OS Loaders. It does not go into how the firmware is constructed internally. The PI spec is a a standaard way to construct firmware based on the Platform Initialization specifications. A UEFI platform does not have to support PI, but a PI platform supports UEFI. PEI - is Pre EFI Initialization. This is the IA32 code that turns on memory and jumps to X64 mode (on a typical PC). The DXE Phase is the Driver Execution Phase. The DXE Core produces the EFI services. The general rule of thumb is match your module type: PEIM - #include PiPei.h DXE_DRIVER - #include PiDxe.h UEFI_DRIVER - #include Uefi.h UEFI_APPLICATION - #include Uefi.h If you need to write an application that accesses things PI (it may not run everywhere) you can #include PiDxe.h in place of Uefi.h as this will also include the main stuff from the UEFI spec. https://svn.code.sf.net/p/edk2/code/trunk/edk2/MdePkg/Include/PiDxe.h #ifndef __PI_DXE_H__ #define __PI_DXE_H__ #include Uefi/UefiBaseType.h #include Uefi/UefiSpec.h #include Pi/PiDxeCis.h #endif Thanks, Andrew Fish here. The compiler is complaining because the EFI_BOOT_MODE macro isn't defined. It's define in PiBootMode.h, which gets pulled in if you use the above #include. That's how I dealt with this in my code at any rate. -Bill #include Pi/PiFirmwareFile.h #include Library/DebugLib.h // ASSERT_EFI_ERROR #include Protocol/LoadedImage.h // EFI_LOADED_IMAGE_PROTOCOL #include Pi/PiFirmwareVolume.h #include Library/PcdLib.h #include Library/UefiLib.h #include Library/UefiApplicationEntryPoint.h #include Library/UefiBootServicesTableLib.h #include Library/UefiRuntimeServicesTableLib.h #include Protocol/FirmwareVolume.h #include Library/GenericBdsLib.h // DevicePathToStr - some snipped [Packages] MdePkg/MdePkg.dec MdeModulePkg/MdeModulePkg.dec IntelFrameworkPkg/IntelFrameworkPkg.dec IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec [LibraryClasses] UefiApplicationEntryPoint UefiLib PcdLib [ Protocols ] gEfiLoadedImageProtocolGuid gEfiDevicePathToTextProtocolGuid [FeaturePcd] gEfiMdeModulePkgTokenSpaceGuid.PcdMyFindRomPrintEnable [Pcd] ## Valid when gEfiMdeModulePkgTokenSpaceGuid.PcdMyFindRomPrintEnable gEfiMdeModulePkgTokenSpaceGuid.PcdMyFindRomPrintString || gEfiMdeModulePkgTokenSpaceGuid.PcdMyFindRomPrintEnable ## Valid when
Re: [edk2] hello world application sample and beyond
Hello Scott Yes o noticed that as well after I played with it some. Thanks. John On Feb 22, 2014 11:33 AM, Scott Duplichan sc...@notabs.org wrote: John Davis [mailto:davi...@gmail.com] wrote: ]Hello ] ]Is there an official source for something a little more complex than the helloworld ]application? I'm trying to use it as a model for something more complex and I can not get ]simple types to even build. I see that UINT32 is in the edkcompatibilitypkg dir and I have ]added it to my [packages] section in my .inf file but I still can't get the include files in the ]foundation subdir beneath there to satisfy my build requirements. [...] ]# if I remove the EfiTypes.h in the .c source, this is my error: ]c:\fw\edk2\MdeModulePkg\Application\MyFindRom\MyFindRom.c(81) : error C2275: 'UINT32' : illegal ]use of this type as an expression ]c:\fw\edk2\MdePkg\Include\Ia32\ProcessorBind.h(116) : see declaration of 'UINT32' ]C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\bin\cl.exe Hello John, In the test above, a valid definition for UINT32 was found. The proper header file is getting included. The error message is because Microsoft Visual Studio 2010 does not fully support the C99 language standard. Your code is using the C99 feature, mixed declarations and code. Microsoft support for the C99 language standard is work in progress. While no Microsoft compiler fully supports C99, Visual Studio 2013 does support mixed declarations and code. Two solutions are possible: 1) Switch to Microsoft Visual Studio 2013. 2) Avoid use of mixed declarations and code. For example: // fails with VS2010 UINT32 test1 (UINT32 a) { a++; UINT32 b = 1; return a + b; } // passes with VS2010 UINT32 test2 (UINT32 a) { UINT32 b = 1; a++; return a + b; } Thanks, Scott [...] ]-- ]John F. Davis ]6 Kandes Court ]Durham, NC 27713 ]919-888-8358 ] ]独树一帜 -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121054471iu=/4140/ostg.clktrk ___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121054471iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
[edk2] hello world application sample and beyond
Hello Is there an official source for something a little more complex than the helloworld application? I'm trying to use it as a model for something more complex and I can not get simple types to even build. I see that UINT32 is in the edkcompatibilitypkg dir and I have added it to my [packages] section in my .inf file but I still can't get the include files in the foundation subdir beneath there to satisfy my build requirements. Here is my setup: The .inf file: [Sources] MyFindRom.c [Packages] MdePkg/MdePkg.dec MdeModulePkg/MdeModulePkg.dec EdkCompatibilityPkg/EdkCompatibilityPkg.dec [LibraryClasses] UefiApplicationEntryPoint UefiLib PcdLib The .c includes /** @file **/ #include Uefi.h #include stdlib.h #include EfiTypes.h // EdkCompatibilityPkg\Foundation\Efi\Include\EfiTypes.h:typedef uint32_t UINT32; #include Library/PcdLib.h #include Library/UefiLib.h #include Library/UefiApplicationEntryPoint.h # the error in build C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\bin\cl.exe /Foc:\fw\edk2\Build\NT32IA32\DEBUG_VS2010x86\IA32\MdeModulePkg\Universal\Network\DpcDxe\DpcDxe\OUTPUT\.\ Dpc.obj /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Ic:\fw\edk2\MdeModulePkg\Universal\Network\DpcDxe /Ic:\fw\edk2\Build\NT32 IA32\DEBUG_VS2010x86\IA32\MdeModulePkg\Universal\Network\DpcDxe\DpcDxe\DEBUG /Ic:\fw\edk2\MdePkg /Ic:\fw\edk2\MdePkg\Include /Ic:\fw\edk2\MdePkg\Include\Ia32 /Ic:\fw\edk2\MdeMo dulePkg /Ic:\fw\edk2\MdeModulePkg\Include c:\fw\edk2\MdeModulePkg\Universal\Network\DpcDxe\Dpc.c c:\fw\edk2\MdeModulePkg\Application\MyFindRom\MyFindRom.c(7) : fatal error C1083: Cannot open include file: 'EfiTypes.h': No such file or directory Dpc.c NMAKE : fatal error U1077: 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\bin\cl.exe' : return code '0x2' Stop. # if I remove the EfiTypes.h in the .c source, this is my error: c:\fw\edk2\MdeModulePkg\Application\MyFindRom\MyFindRom.c(81) : error C2275: 'UINT32' : illegal use of this type as an expression c:\fw\edk2\MdePkg\Include\Ia32\ProcessorBind.h(116) : see declaration of 'UINT32' C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\bin\cl.exe /Foc:\fw\edk2\Build\NT32IA32\DEBUG_VS2010x86\IA32\MdeModulePkg\Un UTPUT\.\HiiDatabaseEntry.obj /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Ic:\fw\edk2\Md c:\fw\edk2\Build\NT32IA32\DEBUG_VS2010x86\IA32\MdeModulePkg\Universal\HiiDatabaseDxe\HiiDatabaseDxe\DEBUG /Ic:\fw\edk2\MdePkg /Ic:\fw\edk2\ lude\Ia32 /Ic:\fw\edk2\MdeModulePkg /Ic:\fw\edk2\MdeModulePkg\Include c:\fw\edk2\MdeModulePkg\Universal\HiiDatabaseDxe\HiiDatabaseEntry.c c:\fw\edk2\MdeModulePkg\Application\MyFindRom\MyFindRom.c(81) : error C2146: syntax error : missing ';' before identifier 'include' c:\fw\edk2\MdeModulePkg\Application\MyFindRom\MyFindRom.c(81) : error C2065: 'include' : undeclared identifier fwiw, I have UINT32 include; in my .c source. -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121054471iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] hello world application sample and beyond
Hello I got a few emails. Perhaps I should repose the question. I was reading the EDKII Coding Guidelines document on tianocore. In it, it says do not use int or char native types. Consquently, I was trying to use UINT32 and UNIT8 types. When I try to extend the HelloWorld sample application from the MdeModulePkg with simple type definitions as UINT32 it fails to compile. I am confused by the other sample main since it seems to be doing precisely what the coding guidelines say not to do. So, how do you setup your includes in your .c file and the .inf file to build code which uses UINT types? John -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121054471iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] hello world application sample and beyond
I appreciate the help folks. Rick, Laurie, Andrew, Jabin, Tim and Bill. I've got something at least compiling now. Here is the relevant includes for the .c source. #include Uefi.h #include Pi/PiFirmwareFile.h #include Pi/PiFirmwareVolume.h #include Library/PcdLib.h #include Library/UefiLib.h #include Library/UefiApplicationEntryPoint.h #include Library/UefiBootServicesTableLib.h #include Library/UefiRuntimeServicesTableLib.h #include Protocol/FirmwareVolume.h This requires the following entries in the .inf file. [Packages] MdePkg/MdePkg.dec MdeModulePkg/MdeModulePkg.dec IntelFrameworkPkg/IntelFrameworkPkg.dec [LibraryClasses] UefiApplicationEntryPoint UefiLib PcdLib This allows the following types to compile. EFI_STATUS EFIAPI getData(UINTN count, EFI_HANDLE handles[]) { UINTN rc; UINTN include; UINTN Index; VOID *RomImage; UINTN RomSize; UINT32AuthenticationStatus; EFI_STATUSStatus; EFI_GUID FirmwareVolumeProtocolGuid = EFI_FIRMWARE_VOLUME_PROTOCOL_GUID; EFI_FIRMWARE_VOLUME_PROTOCOL *FirmwareVolume; EFI_FV_FILE_ATTRIBUTESAttributes; EFI_FV_FILETYPE Type; -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121054471iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] can you use the emulator with dmem in the rom region?
Andrew and others, Here is the process I used to build a rom and how I tried to verify it. The process seems to make it to the FV, but when I try to verify it with the simulator it crashes. Any advice is appreciated. http://sourceforge.net/p/uefinotes/wiki/Add%20a%20ROM%20to%20FV/ John On Tue, Feb 11, 2014 at 7:04 PM, John Davis davi...@gmail.com wrote: I guess I am confused. I don't have the files handy but I thought the entire fv would be loaded at the top of memory. I'll post more detail tomorrow morning. On Feb 11, 2014 6:06 PM, Andrew Fish af...@apple.com wrote: On Feb 11, 2014, at 4:34 PM, John Davis davi...@gmail.com wrote: Hello Can you use the emulator to dump memory associated with roms? The “emulator” is not a VM. If you want to assume magic addresses and hardware exist you need to run the OVFM, as it runs in a VM. The “emulator” is an OS application where there are drivers that abstract POSIX/Win32 APIs as hardware devices. For example on a Mac a 64-bit application can not map any memory 4G (hard to have a pointer bug you don’t notice porting from 32-bit). If you run a memmap command in the Shell you can generally find the ROM as it will have a MemMapIO type and the upper bit of the attribute will be set. Thanks, Andrew Fish PS The EFI memory map is not used to tell the OS about MMIO, it is just used to get virtual MMIO mapping for EFI runtime services. So at a minimum the variable services need an virtual mapping to make the EFI Variable services to work. Note there is no requirement that the EFI Variables are in the same device as the Firmware code, but it is a common implementation. For instance, dmem fff3c9e8 is a region where I believe I have a rom mapped, but that command will crash the emulator. -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Android apps run on BlackBerry 10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- Android apps run on BlackBerry 10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk ___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Android apps run on BlackBerry 10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
[edk2] Fwd: can you use the emulator with dmem in the rom region?
-- Forwarded message -- From: John Davis davi...@gmail.com Date: Wed, Feb 12, 2014 at 11:37 AM Subject: Re: [edk2] can you use the emulator with dmem in the rom region? To: af...@apple.com I just noticed this: On Wed, Feb 12, 2014 at 10:10 AM, Andrew Fish af...@apple.com wrote: On Feb 12, 2014, at 9:51 AM, John Davis davi...@gmail.com wrote: stuff snipped NT32 (I’ve not run it in like 6 years) does not used a fixed address for the FD, it is an address that is dynamically allocated in the emulator (The Unix EmulatorPkg tries to use a fixed address to better emulate FLASH). Ahh that is the difference. EmulatorPkg is a unix/linux emulator and NT32 is a windows emulator. Now I understand why there are two. Many thanks. John stuff snipped -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Android apps run on BlackBerry 10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] can you use the emulator with dmem in the rom region?
Hello Andrew and others, I used Andrew's suggestion and set a debugger breakpoint in the emulator. The results are close to what I was looking for. Its 28 bytes off. If any of you could please take a look and tell me why, I would appreciate it. Also, if its patch worthy to get the address I can submit the minor patch to print out the start address is output. https://sourceforge.net/p/uefinotes/wiki/Add%20a%20ROM%20to%20FV/ John On Wed, Feb 12, 2014 at 10:10 AM, Andrew Fish af...@apple.com wrote: On Feb 12, 2014, at 9:51 AM, John Davis davi...@gmail.com wrote: Andrew and others, Here is the process I used to build a rom and how I tried to verify it. The process seems to make it to the FV, but when I try to verify it with the simulator it crashes. Any advice is appreciated. http://sourceforge.net/p/uefinotes/wiki/Add%20a%20ROM%20to%20FV/ NT32 (I’ve not run it in like 6 years) does not used a fixed address for the FD, it is an address that is dynamically allocated in the emulator (The Unix EmulatorPkg tries to use a fixed address to better emulate FLASH). If you dump out gFdInfo in the debugger you should be able to see the load address. You could also update the prints to dump out the address and size of the FD that was loaded if that would help you, looks like it is just dumping out the filename. https://svn.code.sf.net/p/edk2/code/trunk/edk2/Nt32Pkg/Sec/SecMain.c // // Open the FD and remmeber where it got mapped into our processes address space // Status = WinNtOpenFile ( FileName, 0, OPEN_EXISTING, gFdInfo[Index].Address, gFdInfo[Index].Size ); John On Tue, Feb 11, 2014 at 7:04 PM, John Davis davi...@gmail.com wrote: I guess I am confused. I don't have the files handy but I thought the entire fv would be loaded at the top of memory. I'll post more detail tomorrow morning. On Feb 11, 2014 6:06 PM, Andrew Fish af...@apple.com wrote: On Feb 11, 2014, at 4:34 PM, John Davis davi...@gmail.com wrote: Hello Can you use the emulator to dump memory associated with roms? The “emulator” is not a VM. If you want to assume magic addresses and hardware exist you need to run the OVFM, as it runs in a VM. The “emulator” is an OS application where there are drivers that abstract POSIX/Win32 APIs as hardware devices. For example on a Mac a 64-bit application can not map any memory 4G (hard to have a pointer bug you don’t notice porting from 32-bit). If you run a memmap command in the Shell you can generally find the ROM as it will have a MemMapIO type and the upper bit of the attribute will be set. Thanks, Andrew Fish PS The EFI memory map is not used to tell the OS about MMIO, it is just used to get virtual MMIO mapping for EFI runtime services. So at a minimum the variable services need an virtual mapping to make the EFI Variable services to work. Note there is no requirement that the EFI Variables are in the same device as the Firmware code, but it is a common implementation. For instance, dmem fff3c9e8 is a region where I believe I have a rom mapped, but that command will crash the emulator. -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Android apps run on BlackBerry 10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- Android apps run on BlackBerry 10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk ___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Android apps run on BlackBerry 10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel
[edk2] can you use the emulator with dmem in the rom region?
Hello Can you use the emulator to dump memory associated with roms? For instance, dmem fff3c9e8 is a region where I believe I have a rom mapped, but that command will crash the emulator. -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Android apps run on BlackBerry 10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] can you use the emulator with dmem in the rom region?
I guess I am confused. I don't have the files handy but I thought the entire fv would be loaded at the top of memory. I'll post more detail tomorrow morning. On Feb 11, 2014 6:06 PM, Andrew Fish af...@apple.com wrote: On Feb 11, 2014, at 4:34 PM, John Davis davi...@gmail.com wrote: Hello Can you use the emulator to dump memory associated with roms? The “emulator” is not a VM. If you want to assume magic addresses and hardware exist you need to run the OVFM, as it runs in a VM. The “emulator” is an OS application where there are drivers that abstract POSIX/Win32 APIs as hardware devices. For example on a Mac a 64-bit application can not map any memory 4G (hard to have a pointer bug you don’t notice porting from 32-bit). If you run a memmap command in the Shell you can generally find the ROM as it will have a MemMapIO type and the upper bit of the attribute will be set. Thanks, Andrew Fish PS The EFI memory map is not used to tell the OS about MMIO, it is just used to get virtual MMIO mapping for EFI runtime services. So at a minimum the variable services need an virtual mapping to make the EFI Variable services to work. Note there is no requirement that the EFI Variables are in the same device as the Firmware code, but it is a common implementation. For instance, dmem fff3c9e8 is a region where I believe I have a rom mapped, but that command will crash the emulator. -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Android apps run on BlackBerry 10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- Android apps run on BlackBerry 10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk ___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- Android apps run on BlackBerry 10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
[edk2] corrections questions Ch 2 EDK II Build Spec
Corrections: Section 2 - Under the second Note on page 2. - Repeated The the Section 2.5.2 - Shouldn't the title be Firmware Files or a Firmware File System Files In the text beneath it also says are combined into a Firmware File (FFS) but if you go back to Figure 1 It shows EFI Section Files combined into a single Firmware Filesystem File. Probably would not hurt to add this file extension to the graphic as (.FFS) like the (.FD) and (.FV) are shown. Also, in section 2.5.2 Table 3 it uses FFS in the defines but the description column describes them as Firmware File System files. Questions: Section 2.2 - Figure 1 - If you were to have column headings for the two columns/Stacks, the one on the left is Tools and the one on the right would be Layers, right? In this same picture, the second layer on right is a PE32/PE32+ files, the Firmware Image files is what? S-Records? Image as it appears in memory? Section 2.4 - Figure 6 - What is a Typical IPD FD Layout? I'm assuming its a more generic FD for ARM processors. Section 2.5.3 Firmware Volumes - Figure 11 . General FV Layout o What is the difference between the FV Name GUID in the optional FV Header and File System GUID the FV Header? I'm thinking that the File System GUID in the FV Header is a constant for all .FV files = EFI_FIRMWARE_FILE_SYSTEM2_GUID as shown in section 2.6.10.1. The struct in this section FV_INFO above that has FvName[MAX_PATH] does that correspond to the FV_NAME_GUID in the optional FV Header and is it a GUID corresponding to the FIle Name of the .FV file? -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Androidtrade; apps run on BlackBerryreg;10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] have any of you guys ever worked with option roms?
Hello Brian, Right now, not many. I want to build a .fd from a set of option roms. I believe I can use ovmfpkg\csm\cs16\csm16.inf for the mode of my option roms and I can include these in my emulator. I know the emulator can't use them, but is there anyway I can see if they are present and loaded in the emulator? Perhaps I would need to write an UEFI app to query the GUID to get the base address for a dump? Joh On Mon, Feb 10, 2014 at 4:31 PM, Richardson, Brian brian.richard...@intel.com wrote: Do you have a specific question? We have discussed Option ROMs before on this mailing list. Thanks ... br --- Brian Richardson -- brian.richard...@intel.com -- Twitter: intel_brian *From:* John Davis [mailto:davi...@gmail.com] *Sent:* Monday, February 10, 2014 7:25 PM *To:* edk2-devel@lists.sourceforge.net *Subject:* [edk2] have any of you guys ever worked with option roms? If so and you want to chat, I would be extremely happy to talk to you. -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Android apps run on BlackBerry 10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk ___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Android apps run on BlackBerry 10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] so i am trying to build a copy of DriverSampleDxe
Hello Gao, Andrew Thank you again. That indeed was the trick. The emulator .fdf file needed to be edited along with the firmware .fdf file. I'm getting a runtime error now. I figured that would happen since i did not differenitate all the guids. I'm working on that now. Not sure besides the one in the .inf file which is the source of problem, but i'm sure it will shake out. Thank you again John -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] so i am trying to build a copy of DriverSampleDxe
Hello again Here is the completed page with build and run instructions. I don't know why images for screenshots don't show up. I'll correct that later. https://sourceforge.net/p/uefinotes/wiki/MyDriverSample/ On Sat, Feb 8, 2014 at 10:29 AM, John Davis davi...@gmail.com wrote: Hello Gao, Andrew Thank you again. That indeed was the trick. The emulator .fdf file needed to be edited along with the firmware .fdf file. I'm getting a runtime error now. I figured that would happen since i did not differenitate all the guids. I'm working on that now. Not sure besides the one in the .inf file which is the source of problem, but i'm sure it will shake out. Thank you again John -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
[edk2] fv components to high level source dir map
Maybe this will help somebody. I made it while trying to work from build output in reverse. I examined the final .fv output and then created a table pointing back to the source directory for each of the components in an NT32 emulator build. https://sourceforge.net/p/uefinotes/wiki/FV%20Sources/ -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
[edk2] so i am trying to build a copy of DriverSampleDxe
Hello I am trying to build a copy of DriverSampleDxe. This is the process I am using. The build completes and I see it building MyDriverSampleDxe. However, when I examine the C:\fw\edk2\Build\NT32IA32\DEBUG_VS2010x86\FV\Ffs directory I don't see a GUIDMyDriverSample folder. -- This is the process for building a clone of DriverSample called MyDriverSample. MyDriverSample is just a copy of DriverSample with the exception that it has a new guid and new routines names. 1. Copy the directory in fw\edk2\DriverSampleDxe to fw\edk2\MyDriverSample. 2. Change file names from DriverSample to MyDriverSample. 3. Edit edk2\MdeModulePkg\MdeModulePkg.dsc so that the peer to DriverSample is duplicated. 4. Examine the contents of each of the files in that directory. Look for DriverSample and DRIVER_SAMPLE and replace to MyDriverSample and MY_DRIVER_SAMPLE. 5. In MyDriverSampleDxe.inf replace the GUID with one from www.GuidGen.com 6. Notice that NVDataStruc.h includes Guid/MyDriverSampleHii.h now. This file has to be cloned. Chances are these GUIDs will need to be differed. For now leave them as is. 7. Edit edk2\Nt32Pkg\Nt32Pkg.dsc and clone the DriverSample entry. 8. Edit edk2\EmulatorPkg\EmulatorPkg.dsc and clone the DriverSample entry. 9. Edit edk2\EmulatorPkg\EmulatorPkg.fdf and clone the DriverSample entry. -- Any idea why this would fail? The only thing which I did not change was StrGather.py where it refers to DriverSampleDxe. I figure that is for python tools in the shell. I figure for now, I don't need to use the python tools so I omitted duping it. John -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] so i am trying to build a copy of DriverSampleDxe
Hello Andrew, At first I was like yay, then I noticed in step 9 I had edited the .fdf file to include MyDriverSample. FWIW, I do have a MyDriverSample in the ..FV\Guid.xref file. I even have MyDriverSample.efi in DEBUG_VS2010x86/IA32 folder. Its just not in the fv folder. John -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] Toolchain question...
Hello bill This might not help but once a long time ago I had built a driver using the ddk and a user stack using the SDK. Both of these were free. Later when I tried to integrate it with a larger component built using a devstudio app the app failed to use the use mode stack DLLs I had built with the SDK. Despite fiddling with compiler settings I could never get this to work. Once I switched my user stack to being built with the same version of devstuidio it all magically worked. I guess I'm thinking that edk2 wants to avoid a similar problem. On Feb 7, 2014 3:50 PM, Bill Paul wp...@windriver.com wrote: The other day I decided fix my code so that it could build with the EDKII on Windows without a GNU toolchain (which meant re-writing some assembly from GNU ATT syntax to Intel syntax -- don't ask), so I looked through the supported toolchains list in tools_def.txt to see what that would entail. I noticed there's a DDK3790 option which allows you to build just with the WinDDK compilers directly (e.g. no Visual Studio needed). It happens I have an actual CD copy of this kit -- I ordered it from Microsoft (for free!) some years ago when it was still a current product and held onto it, so I installed it on my Win7 machine in my office and lo and behold everything worked as expected (including the Microsoft C compiler being exceptionally fascist). But I noticed that the descriptions for the VS2003, VS2005, VS2008, VS2010 and VS2012 toolchain tags all say they require the WinDDK as well, e.g.: # VS2012 -win32- Requires: # Microsoft Visual Studio 2012 Professional Edition # Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830 My question is: what's the dependency that forces this requirement? It doesn't look as if the definitions in tools_def.txt cause the DDK tools to be used when one of the Visual Studio toolchain tags is selected, but I could be wrong. The reason I ask is that the WinDDK is obsolete and while you can still download it for free from Microsoft if you hunt for it, it seems the Windows Driver Kit 7.1 has taken its place. I think it includes the same basic tools, but they're installed in a different path. -Bill -- = -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 = -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk ___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] so i am trying to build a copy of DriverSampleDxe
Hello limming Ahh emulator and not fdf files. Thanks I'll try that. I appreciate your expertise. John On Feb 7, 2014 5:45 PM, Gao, Liming liming@intel.com wrote: John: Your step 9 edits EmulatorPkg.fdf to include MyDriverSample. But, no step edits Nt32Pkg.fdf to include it. So, you can't see it NT32 FV Output folder. Thanks Liming *From:* John Davis [mailto:davi...@gmail.com] *Sent:* Saturday, February 08, 2014 6:49 AM *To:* edk2-devel@lists.sourceforge.net *Subject:* Re: [edk2] so i am trying to build a copy of DriverSampleDxe Hello Andrew, At first I was like yay, then I noticed in step 9 I had edited the .fdf file to include MyDriverSample. FWIW, I do have a MyDriverSample in the ..FV\Guid.xref file. I even have MyDriverSample.efi in DEBUG_VS2010x86/IA32 folder. Its just not in the fv folder. John -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk ___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
[edk2] minnowboard and duet
Hello As I am looking through the EDKII workspace, I am wondering where is the port for minnowboard? I saw a video from an Intel guy on youtube and it mentioned the minnowboard as a atom based board which could be used as a cheap UEFI reference development kit. This sounds like a good deal for the UEFI support alone. The tunnelmountain kits are way out of my range for something to do in my personal time, but I'm wondering. I see BeagleBoard and Omap trees in the source but no minnowboard. Why is that? Does it not require its own seperate tree since it runs on the core workspace? Also, I see this tree for something called Duet. What is Duet? Is it another board port? Lastly, I see a lot of Ovmp discussion on the board lately. Is that a virtual UEFI bios port? I'm guessing, but not sure that you could build a .fv for it just as you build a .fv for the emulator and use it to boot a vm os. Is that the case? -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] minnowboard and duet
Hello Bibbet, Thank you for the info. I appreciate it. FWIW, I was just curious what the package was as I was poking around. Speaking of opensource, here is a good video on UEFI and Android. Off camera you can hear Dong Wei from HP speaking a few times. I just happened to be listening to this one while digging around in the code. https://www.youtube.com/watch?v=w6XbTGSGsy0list=PLisMMQz00Chydm-DeNZ0mgYbQj9DXMnzpindex=23 On Thu, Feb 6, 2014 at 12:36 PM, Blibbet blib...@gmail.com wrote: Use QEMU/OVMF, it gets more attention from Intel than DUET, which was an older tech. I don't think anyone at ARM cares about DUET, but theydo care about helping QEMU/OVMF. The UEFI Forum doesn't bother to update OVMF binaries to their download site, they're ancient. They presume you'll use the UDK/EDK2 to build your own fresh ones. If you don't want to build your own and need some existing binaries, look to the Linux community, for their research in learning how to work around SecureBoot. There are multiple fresh OVMFs there. Focus on the few Linux companies that're members of the UEFI Forum (Canonical, RedHat, Ubuntu), and their free distros, Fedora, Ubuntu, OpenSUSE. http://www.linux-kvm.org/page/OVMF http://en.opensuse.org/openSUSE:UEFI_Secure_boot_using_qemu-kvm https://fedoraproject.org/wiki/Testing_secureboot_with_KVM https://wiki.ubuntu.com/SecurityTeam/SecureBoot http://blog.hansenpartnership.com/uefi-secure-boot/ http://mjg59.dreamwidth.org/ If you really want to try and use DUET, look to external DUET extensions that make the TianoCore DUET release usable. There's this one, and one other I can't find at the moment: https://gitorious.org/tianocore_uefi_duet_builds If you're on a budget and can't get a Tunnel Mountain, I'd suggest an ARM dev board, over the Minnow. Minnowboard is good, but AFAIK you can't update the firmware, you have to wait for Intel to produce the binaries, so it's not that useful. If/when you can update your own firmware, then it'll become a lot more useful for EFI dev. Take a look at Linaro.org's ARM dev boards, and their fork of EDK2 for ARM. You can use their Ubuntu or Android binaries, and use their UEFI, in QEMU, or with live hardware. http://releases.linaro.org/latest/components/kernel/uefi-linaro https://wiki.linaro.org/ARM/UEFI https://wiki.linaro.org/LEG/Engineering/Kernel/UEFI/ https://launchpad.net/linaro-uefi https://snapshots.linaro.org/components/kernel/uefi-next https://snapshots.linaro.org/components/kernel/uefi/ https://wiki.linaro.org/LEG/Enginering/Kernel/UEFI/UEFI_Network_Booting If you're on a budget, ignore hardware and just use QEMU/OVMF. My $.02 -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk ___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
[edk2] How do I quickly determine info such as what is difference between .efi and .ifi files?
Hello I notice that there are many file types in the edkII build workspace. I notice the workspace also contains files like .efi and .ifi. Besides knowing these are both PE files by examining them with a hex editor its not easy for me to find what the difference in these files are. From the EDK II Build Spec in chapter 10 it has some info on the file types by extension, but when I look at the UEFI specs I don't see anything which jumps out. For instance I the tables in Chapter 10 say that .efi o Is an input to GenFds. o Is an input to ImageGen I know there is a _EFI_FILE Structure Protocol which seems to be a file handle for accessing files on the EFI Partition. I'm guessing its kind of like a FILE handle for regular user mode file I/O. I also know that in the shell, whn you hit F8 and do dir you see a bunch of .efi files. Some of the files are xxx.efi and others are xxxDxe.efi. I thought the xxx.efi form would be applications since the Hello program I made from the Beyond Bios book makes a Hello.efi. The hello.efi program can be run by simply saying Hello, but the others like Cpu.efi or Cpu can not. I was thinking it would be something like cpuinfo in linux. As far as the xxxDxe.efi files, I'm pretty sure they are drivers since they correspond to the output of the drivers command. I don't know what the difference between a dxe driver and dxe application other than one might be an installer for a driver. Anyway, I notice that you can load and unload drivers in the shell. Odd that you can load a driver multiple times. Its also odd that if you load a driver it will show up in drivers output as \/ArpDxe.efi instead of ArpDxe as it is when loaded at boot. Also load Cpu.efi will crash the emulator. TLDR. Where in the UEFI spec is the pointer to all the different file types? .efi, .ifi, What is difference between drivers, driver applications? -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] How do I quickly determine info such as what is difference between .efi and .ifi files?
Hello Andrew Thanks again for your help. On Wed, Feb 5, 2014 at 11:10 AM, Andrew Fish af...@apple.com wrote: On Feb 5, 2014, at 10:27 AM, John Davis davi...@gmail.com wrote: Stuff snipped Wow, that is good info you gave me. I was surprised that PEView ( a free program) actually decodes the Subsystem field in the IMAGE_OPTIONAL_HEADER. DEBUG_VS2010x86/IA32/MyHello/Output/MyHello.efi is 0xa IMAGE_SUBSYSTEM_EFI_APPLICATION DEBUG_VS2010x86/FV/Ffs/GUID?Tcp4Dxe/no .efi files here, but take the .p32 file and strip off leading bytes to the dos header and save to diff file and edit is 0xB IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER DEBUG ditto/GUIDReset/ditto decodes to EFI_BOOT_SERVICE_DRIVER DEBUG ditto/GUIDTimer/dito ditto DEBUG ditto/GUIDCpu/ditto ditto DEBUG ditto/GUIDCapsuleRuntimeDxe/ 0xc IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER Odd, I figured the Dxe vs no Dxe suffix would correspond to different image types. // // PE32+ Subsystem type for EFI images // #define EFI_IMAGE_SUBSYSTEM_EFI_APPLICATION 10 #define EFI_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11 #define EFI_IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12 So things which make sense: o CapsuleRuntimeDxe is a runtime driver. This jives with chapter 5 of Beyond Bios where it says capsule services is part of the runtime services. o MyHello application which is in the seperate folder is a Application, since it was presented as an application code and discussed in the book as an application. o Cpu, Reset, Tcp are boottime drivers. Things which don't make sense: o Timer is boottime but its mentioned as a runtime service. o Why some drivers end with Dxe suffix and others don't. GUIDReset vs GUIDCapsuleRuntimeDxe Thanks, Andrew Fish -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk ___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
[edk2] pcd, fd and loading option roms/firmware at runtime
Hello In the EDK II build spec, Chapter 10 on Post-Build ImageGen Stage - Flash Images, it mentions PCD's (Some of the PCD's defined...) and FD (.. combined into FD image files..). What are these files? The glossary has PCD defined as a Platform Configuration Database, but I thought there would only be one Platform Configuration Database. Why the plural s? The work flow diagram in Figure 22 shows a .FD file as a Full Firmware Image. I notice there are NT32.fd and FVRECOVERY.Fv files of similar size in the NT32IA32/DEBUG_VSxx/FV directory. What is the difference in these two files? Only thing I can tell based upon a hex editor is that the strings which are in common are at different addresses and that the .fd file is used by the emulator as a firmware volume. From the description file: gEfiNt32PkgTokenSpaceGuid.PcdWinNtFirmwareVolume|L..\\Fv\\Nt32.fd Lastly, is there anyway to load firmware in the emulator at runtime and dump it? From the shell book, I can see you can load drivers but I haven't found anything on .fv files yet. -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
[edk2] EFI OS Loaders and Beyond BIOS book
Hello The sequence described in Chapter 4 Protocols You Should Know, on EFI OS Loaders looks interesting. Can this code be used with the emulator? The only place I found one of the routines (LibGetSystemConfigurationTable) in the codebase was in two patch files associated with EfiDump.c. There is an efi version (efiLibGetSystemConfigurationTable) but it is used in a bunch of library files. Is there a sample EFI OS Loader written using the new api I could reference, tweak and test? -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- WatchGuard Dimension instantly turns raw network data into actionable security intelligence. It gives you real-time visual feedback on key security issues and trends. Skip the complicated setup - simply import a virtual appliance and go from zero to informed in seconds. http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
[edk2] Fwd: EFI OS Loaders and Beyond BIOS book
I looked at that code in the EFI Toolkit. It looks like it is similar code to the OS Loader shown in the book except it uses stdlib. Thanks for the pointer, Vincent. This prompts a few more questions. It appears this code has been superseded by the EADK. Other than the stdlibinternals code all these components in EADK have been duplicated in the EDK2. Is that simply to prevent people from using the internals part? Also it looks like some of the utils which are in EFI Toolkit are in the EDK2 but not in EADK, like ramdisk, Edit, ping, etc. Why are some separated into EADK and others not? -- WatchGuard Dimension instantly turns raw network data into actionable security intelligence. It gives you real-time visual feedback on key security issues and trends. Skip the complicated setup - simply import a virtual appliance and go from zero to informed in seconds. http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
[edk2] trying to include PeImage.h
Hello I'm trying to #include PeImage.h in a .c file. I think, but not certain that the inf file [LibraryClasses] determines the include path as well as libs to link. With that said I added [LibraryClasses] UefiApplicationEntryPoint UefiLib BaseLib To my BaseLib to that section as shown, but it still does not pick it up during a build all -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- WatchGuard Dimension instantly turns raw network data into actionable security intelligence. It gives you real-time visual feedback on key security issues and trends. Skip the complicated setup - simply import a virtual appliance and go from zero to informed in seconds. http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] trying to include PeImage.h
Thanks for your expertise Andrew. I'll use your advice. -- WatchGuard Dimension instantly turns raw network data into actionable security intelligence. It gives you real-time visual feedback on key security issues and trends. Skip the complicated setup - simply import a virtual appliance and go from zero to informed in seconds. http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
[edk2] regarding the chapter 4 sample program in the book Beyond Bios
Hello I'm reading the Beyond Bios book in conjunction with the stuff on tianocore. The example code in chapter 4 of that book talks about a HelloApplication. The format looks different from the sample code in AppPkg\Hello directory of the EDK2 src. Is that format/api shown in the book obsolete? The book does not say how to compile it or even where to put it and I am confused. -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- WatchGuard Dimension instantly turns raw network data into actionable security intelligence. It gives you real-time visual feedback on key security issues and trends. Skip the complicated setup - simply import a virtual appliance and go from zero to informed in seconds. http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] regarding the chapter 4 sample program in the book Beyond Bios
Hello Laurie, Thank you for letting me know the source is still valid. I'll look at the references you provided to see if I can get it working. I do have that massive 400+ page pdf and I have built the emulator. It just takes a while to dig though. It seems the answer is in there, I just haven't found it yet. Thank you -- WatchGuard Dimension instantly turns raw network data into actionable security intelligence. It gives you real-time visual feedback on key security issues and trends. Skip the complicated setup - simply import a virtual appliance and go from zero to informed in seconds. http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] regarding the chapter 4 sample program in the book Beyond Bios
Hello Andrew, It kind of looks like the one you show. Kind of. For reference here it is -- #include efi.h EFI_STATUS InitializeHelloApplication( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) { UINTN Index; SystemTable-ConOut-OutputString(SystemTable-ConOut,LHello application started\n\r); SystemTable-ConOut-OutputString(SystemTable-ConOut,L\n\r\n\r Hit any key to exit\n\r); SystemTable-BootServices-WaitForEvent(1,(SystemTable-ConIn-WaitForKey),Index); return EFI_SUCCESS; } On Thu, Jan 30, 2014 at 12:57 PM, Andrew Fish af...@apple.com wrote: On Jan 30, 2014, at 12:38 PM, John Davis davi...@gmail.com wrote: Hello I'm reading the Beyond Bios book in conjunction with the stuff on tianocore. The example code in chapter 4 of that book talks about a HelloApplication. The format looks different from the sample code in AppPkg\Hello directory of the EDK2 src. Is that format/api shown in the book obsolete? The book does not say how to compile it or even where to put it and I am confused. I’m guessing the one in the book looks more like: https://svn.code.sf.net/p/edk2/code/trunk/edk2/MdeModulePkg/Application/HelloWorld/HelloWorld.c This is a the generic UEFI Application/Driver entry point. The application in the AppPkg depends on the shell. So these are not UEFI applications, they are UEFI shell applications. They depend on the shell being loaded to function. I think you will find that the entry point for the UefisShellCEntryLib is the same as a UEFI Application. This library looks up info from a protocol produced by the shell to figure out the arguments. https://svn.code.sf.net/p/edk2/code/trunk/edk2/ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.c Thanks, Andrew Fish -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- WatchGuard Dimension instantly turns raw network data into actionable security intelligence. It gives you real-time visual feedback on key security issues and trends. Skip the complicated setup - simply import a virtual appliance and go from zero to informed in seconds. http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- WatchGuard Dimension instantly turns raw network data into actionable security intelligence. It gives you real-time visual feedback on key security issues and trends. Skip the complicated setup - simply import a virtual appliance and go from zero to informed in seconds. http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk ___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- WatchGuard Dimension instantly turns raw network data into actionable security intelligence. It gives you real-time visual feedback on key security issues and trends. Skip the complicated setup - simply import a virtual appliance and go from zero to informed in seconds. http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] regarding the chapter 4 sample program in the book Beyond Bios
Yeah, I don't think this code will build. I understand what you guys were telling me about it being a higher abstraction. Kind of like programming in Xt versus programming in Motif but when I try to massage it into building it does not work. It complains about not being able to find efi.h. I did a search on efi.h the ones I found are commented out of the Nt32Pkg build file. I give, I'll move on. On Thu, Jan 30, 2014 at 1:59 PM, John Davis davi...@gmail.com wrote: Hello Andrew, It kind of looks like the one you show. Kind of. For reference here it is -- #include efi.h EFI_STATUS InitializeHelloApplication( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) { UINTN Index; SystemTable-ConOut-OutputString(SystemTable-ConOut,LHello application started\n\r); SystemTable-ConOut-OutputString(SystemTable-ConOut,L\n\r\n\r Hit any key to exit\n\r); SystemTable-BootServices-WaitForEvent(1,(SystemTable-ConIn-WaitForKey),Index); return EFI_SUCCESS; } On Thu, Jan 30, 2014 at 12:57 PM, Andrew Fish af...@apple.com wrote: On Jan 30, 2014, at 12:38 PM, John Davis davi...@gmail.com wrote: Hello I'm reading the Beyond Bios book in conjunction with the stuff on tianocore. The example code in chapter 4 of that book talks about a HelloApplication. The format looks different from the sample code in AppPkg\Hello directory of the EDK2 src. Is that format/api shown in the book obsolete? The book does not say how to compile it or even where to put it and I am confused. I’m guessing the one in the book looks more like: https://svn.code.sf.net/p/edk2/code/trunk/edk2/MdeModulePkg/Application/HelloWorld/HelloWorld.c This is a the generic UEFI Application/Driver entry point. The application in the AppPkg depends on the shell. So these are not UEFI applications, they are UEFI shell applications. They depend on the shell being loaded to function. I think you will find that the entry point for the UefisShellCEntryLib is the same as a UEFI Application. This library looks up info from a protocol produced by the shell to figure out the arguments. https://svn.code.sf.net/p/edk2/code/trunk/edk2/ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.c Thanks, Andrew Fish -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- WatchGuard Dimension instantly turns raw network data into actionable security intelligence. It gives you real-time visual feedback on key security issues and trends. Skip the complicated setup - simply import a virtual appliance and go from zero to informed in seconds. http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- WatchGuard Dimension instantly turns raw network data into actionable security intelligence. It gives you real-time visual feedback on key security issues and trends. Skip the complicated setup - simply import a virtual appliance and go from zero to informed in seconds. http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk ___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- WatchGuard Dimension instantly turns raw network data into actionable security intelligence. It gives you real-time visual feedback on key security issues and trends. Skip the complicated setup - simply import a virtual appliance and go from zero to informed in seconds. http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
Re: [edk2] regarding the chapter 4 sample program in the book Beyond Bios
Hello I got it working. Thanks for the help. I used the code from the book with the uefi.h include and I modeled the .inf file from the samplehelloapp in the edk2. The only problem was using the webpage to generate the guid. I don't know if that line was meant to generate a guid or simply use that site to generate one. I just wrote a random one. If I used the webpage in the file as is, it crashes the build. Thanks again John -- WatchGuard Dimension instantly turns raw network data into actionable security intelligence. It gives you real-time visual feedback on key security issues and trends. Skip the complicated setup - simply import a virtual appliance and go from zero to informed in seconds. http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
[edk2] build run has duplicate consoles
Hello I used ms windows to build the EDK II source. I have built the code using ms visual studio 2010 premium and even done a build post cleanall. However everytime I do a $ build run, I get two tianocore emulator screens. They appear to be mirrored, but its confusing to have two windows. Is that normal? I am using a win7 pc with an i5 and 4 cores if that helps. -- John F. Davis 6 Kandes Court Durham, NC 27713 919-888-8358 独树一帜 -- WatchGuard Dimension instantly turns raw network data into actionable security intelligence. It gives you real-time visual feedback on key security issues and trends. Skip the complicated setup - simply import a virtual appliance and go from zero to informed in seconds. http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
[edk2] Wiki document updates
I'm learning uefi and reading the beyond bios and the wiki. I've noticed some parts which could be updated but the pages are locked and no email addresses for most of the Admins. How can I get in touch with them? The one email I sent never got a response. -- WatchGuard Dimension instantly turns raw network data into actionable security intelligence. It gives you real-time visual feedback on key security issues and trends. Skip the complicated setup - simply import a virtual appliance and go from zero to informed in seconds. http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk___ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel