You can subscribe to this list here.
2010 |
Jan
|
Feb
(1) |
Mar
(3) |
Apr
(1) |
May
(8) |
Jun
(11) |
Jul
(5) |
Aug
(1) |
Sep
|
Oct
(12) |
Nov
(5) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2011 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
(3) |
Jun
(1) |
Jul
(13) |
Aug
(17) |
Sep
(9) |
Oct
(6) |
Nov
(6) |
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
(3) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
(1) |
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(2) |
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Daniel M. <dan...@er...> - 2011-09-06 10:40:43
|
Hi all, I am having a problem in my board when trying to allocate memmory. After loading the Shell and executing memmap this is the summary: reserved : 65 Pages (266,240) LoaderCode: 349 Pages (1,429,504) LoaderData: 384 Pages (1,572,864) BS_code : 1,492 Pages (6,111,232) BS_data : 262,865 Pages (1,076,695,040) RT_code : 97 Pages (397,312) RT_data : 43 Pages (176,128) available : 1,822,931 Pages (7,466,725,376) ACPI_recl : 8 Pages (32,768) ACPI_NVS : 630 Pages (2,580,480) MemMapIO : 69,711 Pages (285,536,256) Total Memory: 8,159 MB (8,555,720,704) Bytes I wrote an application which allocates memmory until it is not possible to allocate more, it executes this loop: while(!(EFI_ERROR(Status))){ cont++; Status = BS->AllocatePages(AllocateAnyPages,EfiLoaderData,3,NULL); } Then, if for example I try to load an application (EFIFMT.EFI) I get the following error messages: Promote the memory resource AllocatePoolPages: failed to allocate 44 pages AllocatePool: failed to allocate 179296 bytes Promote the memory resource AllocatePoolPages: failed to allocate 44 pages AllocatePool: failed to allocate 179296 bytes CoreOpenImageFile: Device did not support a known load protocol Promote the memory resource AllocatePoolPages: failed to allocate 44 pages AllocatePool: failed to allocate 179296 bytes 'EFIFMT.EFI' is not recognized as an internal or external command, operable program, or batch file Exit status code: Invalid Parameter But if I execute memmap again I get this: reserved : 65 Pages (266,240) LoaderCode: 349 Pages (1,429,504) LoaderData: 250,440 Pages (1,025,802,240) BS_code : 1,492 Pages (6,111,232) BS_data : 262,865 Pages (1,076,695,040) RT_code : 97 Pages (397,312) RT_data : 43 Pages (176,128) available : 1,572,875 Pages (6,442,496,000) ACPI_recl : 8 Pages (32,768) ACPI_NVS : 630 Pages (2,580,480) MemMapIO : 69,711 Pages (285,536,256) Total Memory: 8,159 MB (8,555,720,704) Bytes So if there is that much available memmory why can I only use like 2GB in total? Is there any limitation or any parameter anywhere to limit this? Or do you think it is because of my board? Thank you very much BR Daniel |
From: Jordan J. <jlj...@gm...> - 2011-09-02 19:07:11
|
On Fri, Sep 2, 2011 at 10:42, Krau, Michael P <mic...@in...> wrote: > Since you are actually working towards EDK II (using the ECP), please use > edk...@li..., as it would be appropriate. You must join the edk2-devel email list before posting to it. See: http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Mailing_Lists -Jordan > > > > The development on EDK project is considered mature at the current level of > specification support (UEFI 2.3) and new development is occurring in the EDK > II project. Other than some modules and components that have not yet > transitioned from the EDK to the EDK II projects, the EDK II should provide > developers a better and more advanced development experience. > > > > Per your final question: > > > > The changes from the EDK to EDK II build environments were extensive, these > changes were considered necessary based upon developer feedback and reviews > of the EDK build methods. It was understood that transition from EDK to EDK > II style builds would represent an effort for EDK developers, it was also > understood that the benefits of the new build would provide benefits not > available in the EDK project at that time. > > > > To mitigate the difficulty in transitioning between EDK to EDK II, the ECP > (EDK Compatibility Package) was created to allow developers a simplified > transition path. In using the ECP, we hope you participate in the > edk...@li... forum, so we can benefit from your > experience and feedback. > > > > Thank you, > > > > Michael Krau > > > > Past - Administrator: UEFI Open Source Community Website > > www.Tianocore.org > > > > While I am an Intel employee, I do not represent Intel and am not authorized > to speak for Intel. > > ________________________________ > > From: Tian, Hot [mailto:hot...@in...] > Sent: Friday, September 02, 2011 2:50 AM > To: EDK; ad...@ed...; dev; Huang, David H; > efi...@li...; jia...@ls... > Subject: Re: [edk] Porting from EDK I to EDK II > > > > EDK project is end of life. Please use edk...@li... for > EDKII community. The ECP in EDKII trunk is already synced with EDK1.06. > > > > From: EDK [mailto:ed...@gm...] > Sent: Thursday, September 01, 2011 11:45 PM > To: Tian, Hot; ad...@ed...; dev; Huang, David H; > efi...@li...; jia...@ls... > Subject: Fwd: Porting from EDK I to EDK II > > > > Hi Tian and David, > > > > Can you please help answer below questions? > > > > In addiiton can you please provide the EDK II group email ID where I can > raise questions and get clarifications. > > Thanks, > Daniel > > On Mon, Aug 29, 2011 at 7:08 PM, EDK <ed...@gm...> wrote: > > Hi, > > > > How would I ensure that EDK Compatibility Package is included? > > > > Porting EDK 1.06 source to EDK II (UDK 2010 UP4)... To build my source in > EDK II I needed to do the following: > > > > · Convert INF file to new format > > · > > Remove header files “Tiano.h”, “EfiDriverLib.h”, “PciIO.h”, etc and include > <Uefi.h>, <Library/UefiLib.h>, <Protocol/LoadedImage.h>, etc > > · > > Some macro definitions were missing in UDK2010, so we have to > define them by ourselves. I have included those macros below > > o #define EFI_SIGNATURE_16(A, B) ((A) | (B << 8)) > > o #define EFI_SIGNATURE_32(A, B, C, D) (EFI_SIGNATURE_16 (A, B) | > (EFI_SIGNATURE_16 (C, D) << 16)) > > o #define DevicePathNodeLength(a) ( ((a)->Length[0]) | ((a)->Length[1] > << 8) ) > > o #define SetDevicePathNodeLength(a,l) { \ > > (a)->Length[0] = (UINT8) (l); \ > > (a)->Length[1] = (UINT8) ((l) >> 8); \ > > } > > · Make the “EFI_BOOT_SERVICES *gBS; EFI_RUNTIME_SERVICES *gRT; ” > statement in our file because the EfiDriverLibaray is no longer having this > gBS and gRT declaration. > > o We need to get these pointer via “gBS = SystemTable->BootServices; > gRT = SystemTable->RuntimeServices;” > > · All EfiDriverLibrary functions need to be renamed. > > o EfiLibAllocateZeroPool to AllocateZeroPool; > > o EfiZeroMem to ZeroMem; > > o EfiCopyMem to CopyMem; > > o EfiSetMem to SetMem; > > EfiLibLookupUnicodeString to LookupUnicodeString; > > > > Questions: > > Is it true that every developer need to go through this... or is there a way > to avoid this? Should I not expect to build my EDK I source as is without > any issue in EDK II env? > > > > Appreciate the assistance! > > > > Thanks, > > Dan > > > > > > ------------------------------------------------------------------------------ > Special Offer -- Download ArcSight Logger for FREE! > Finally, a world-class log management solution at an even better > price-free! And you'll get a free "Love Thy Logs" t-shirt when you > download Logger. Secure your free ArcSight Logger TODAY! > http://p.sf.net/sfu/arcsisghtdev2dev > _______________________________________________ > efidevkit-devel mailing list > efi...@li... > https://lists.sourceforge.net/lists/listinfo/efidevkit-devel > > |
From: Krau, M. P <mic...@in...> - 2011-09-02 17:42:40
|
Hello Dan, For a little more clarification on the previous post: Since you are actually working towards EDK II (using the ECP), please use edk...@li...<mailto:edk...@li...>, as it would be appropriate. The development on EDK project is considered mature at the current level of specification support (UEFI 2.3) and new development is occurring in the EDK II project. Other than some modules and components that have not yet transitioned from the EDK to the EDK II projects, the EDK II should provide developers a better and more advanced development experience. Per your final question: The changes from the EDK to EDK II build environments were extensive, these changes were considered necessary based upon developer feedback and reviews of the EDK build methods. It was understood that transition from EDK to EDK II style builds would represent an effort for EDK developers, it was also understood that the benefits of the new build would provide benefits not available in the EDK project at that time. To mitigate the difficulty in transitioning between EDK to EDK II, the ECP (EDK Compatibility Package) was created to allow developers a simplified transition path. In using the ECP, we hope you participate in the edk...@li...<mailto:edk...@li...> forum, so we can benefit from your experience and feedback. Thank you, Michael Krau Past - Administrator: UEFI Open Source Community Website www.Tianocore.org While I am an Intel employee, I do not represent Intel and am not authorized to speak for Intel. ________________________________ From: Tian, Hot [mailto:hot...@in...] Sent: Friday, September 02, 2011 2:50 AM To: EDK; ad...@ed...; dev; Huang, David H; efi...@li...; jia...@ls... Subject: Re: [edk] Porting from EDK I to EDK II EDK project is end of life. Please use edk...@li...<mailto:edk...@li...> for EDKII community. The ECP in EDKII trunk is already synced with EDK1.06. From: EDK [mailto:ed...@gm...] Sent: Thursday, September 01, 2011 11:45 PM To: Tian, Hot; ad...@ed...; dev; Huang, David H; efi...@li...; jia...@ls... Subject: Fwd: Porting from EDK I to EDK II Hi Tian and David, Can you please help answer below questions? In addiiton can you please provide the EDK II group email ID where I can raise questions and get clarifications. Thanks, Daniel On Mon, Aug 29, 2011 at 7:08 PM, EDK <ed...@gm...<mailto:ed...@gm...>> wrote: Hi, How would I ensure that EDK Compatibility Package is included? Porting EDK 1.06 source to EDK II (UDK 2010 UP4)... To build my source in EDK II I needed to do the following: * Convert INF file to new format * Remove header files "Tiano.h", "EfiDriverLib.h", "PciIO.h", etc and include <Uefi.h>, <Library/UefiLib.h>, <Protocol/LoadedImage.h>, etc * Some macro definitions were missing in UDK2010, so we have to define them by ourselves. I have included those macros below o #define EFI_SIGNATURE_16(A, B) ((A) | (B << 8)) o #define EFI_SIGNATURE_32(A, B, C, D) (EFI_SIGNATURE_16 (A, B) | (EFI_SIGNATURE_16 (C, D) << 16)) o #define DevicePathNodeLength(a) ( ((a)->Length[0]) | ((a)->Length[1] << 8) ) o #define SetDevicePathNodeLength(a,l) { \ (a)->Length[0] = (UINT8) (l); \ (a)->Length[1] = (UINT8) ((l) >> 8); \ } * Make the "EFI_BOOT_SERVICES *gBS; EFI_RUNTIME_SERVICES *gRT; " statement in our file because the EfiDriverLibaray is no longer having this gBS and gRT declaration. o We need to get these pointer via "gBS = SystemTable->BootServices; gRT = SystemTable->RuntimeServices;" * All EfiDriverLibrary functions need to be renamed. o EfiLibAllocateZeroPool to AllocateZeroPool; o EfiZeroMem to ZeroMem; o EfiCopyMem to CopyMem; o EfiSetMem to SetMem; EfiLibLookupUnicodeString to LookupUnicodeString; Questions: Is it true that every developer need to go through this... or is there a way to avoid this? Should I not expect to build my EDK I source as is without any issue in EDK II env? Appreciate the assistance! Thanks, Dan |
From: Tian, H. <hot...@in...> - 2011-09-02 09:50:56
|
EDK project is end of life. Please use edk...@li...<mailto:edk...@li...> for EDKII community. The ECP in EDKII trunk is already synced with EDK1.06. From: EDK [mailto:ed...@gm...] Sent: Thursday, September 01, 2011 11:45 PM To: Tian, Hot; ad...@ed...; dev; Huang, David H; efi...@li...; jia...@ls... Subject: Fwd: Porting from EDK I to EDK II Hi Tian and David, Can you please help answer below questions? In addiiton can you please provide the EDK II group email ID where I can raise questions and get clarifications. Thanks, Daniel On Mon, Aug 29, 2011 at 7:08 PM, EDK <ed...@gm...<mailto:ed...@gm...>> wrote: Hi, How would I ensure that EDK Compatibility Package is included? Porting EDK 1.06 source to EDK II (UDK 2010 UP4)... To build my source in EDK II I needed to do the following: * Convert INF file to new format * Remove header files "Tiano.h", "EfiDriverLib.h", "PciIO.h", etc and include <Uefi.h>, <Library/UefiLib.h>, <Protocol/LoadedImage.h>, etc * Some macro definitions were missing in UDK2010, so we have to define them by ourselves. I have included those macros below o #define EFI_SIGNATURE_16(A, B) ((A) | (B << 8)) o #define EFI_SIGNATURE_32(A, B, C, D) (EFI_SIGNATURE_16 (A, B) | (EFI_SIGNATURE_16 (C, D) << 16)) o #define DevicePathNodeLength(a) ( ((a)->Length[0]) | ((a)->Length[1] << 8) ) o #define SetDevicePathNodeLength(a,l) { \ (a)->Length[0] = (UINT8) (l); \ (a)->Length[1] = (UINT8) ((l) >> 8); \ } * Make the "EFI_BOOT_SERVICES *gBS; EFI_RUNTIME_SERVICES *gRT; " statement in our file because the EfiDriverLibaray is no longer having this gBS and gRT declaration. o We need to get these pointer via "gBS = SystemTable->BootServices; gRT = SystemTable->RuntimeServices;" * All EfiDriverLibrary functions need to be renamed. o EfiLibAllocateZeroPool to AllocateZeroPool; o EfiZeroMem to ZeroMem; o EfiCopyMem to CopyMem; o EfiSetMem to SetMem; EfiLibLookupUnicodeString to LookupUnicodeString; Questions: Is it true that every developer need to go through this... or is there a way to avoid this? Should I not expect to build my EDK I source as is without any issue in EDK II env? Appreciate the assistance! Thanks, Dan |
From: Jordan J. <jlj...@gm...> - 2011-09-01 17:31:49
|
Daniel, You might posting your question to edk2-devel. http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Mailing_Lists -Jordan On Thu, Sep 1, 2011 at 08:45, EDK <ed...@gm...> wrote: > Hi Tian and David, > > Can you please help answer below questions? > > In addiiton can you please provide the EDK II group email ID where I can > raise questions and get clarifications. > Thanks, > Daniel > On Mon, Aug 29, 2011 at 7:08 PM, EDK <ed...@gm...> wrote: >> >> Hi, >> >> How would I ensure that EDK Compatibility Package is included? >> >> Porting EDK 1.06 source to EDK II (UDK 2010 UP4)... To build my source in >> EDK II I needed to do the following: >> >> >> · Convert INF file to new format >> >> · >> >> Remove header files “Tiano.h”, “EfiDriverLib.h”, “PciIO.h”, etc and >> include <Uefi.h>, <Library/UefiLib.h>, <Protocol/LoadedImage.h>, etc >> >> · >> >> Some macro definitions were missing in UDK2010, so we have to >> define them by ourselves. I have included those macros below >> >> o #define EFI_SIGNATURE_16(A, B) ((A) | (B << 8)) >> >> o #define EFI_SIGNATURE_32(A, B, C, D) (EFI_SIGNATURE_16 (A, B) | >> (EFI_SIGNATURE_16 (C, D) << 16)) >> >> o #define DevicePathNodeLength(a) ( ((a)->Length[0]) | >> ((a)->Length[1] << 8) ) >> >> o #define SetDevicePathNodeLength(a,l) { \ >> >> (a)->Length[0] = (UINT8) (l); \ >> >> (a)->Length[1] = (UINT8) ((l) >> 8); \ >> >> } >> >> · Make the “EFI_BOOT_SERVICES *gBS; EFI_RUNTIME_SERVICES *gRT; ” >> statement in our file because the EfiDriverLibaray is no longer having this >> gBS and gRT declaration. >> >> o We need to get these pointer via “gBS = >> SystemTable->BootServices; gRT = SystemTable->RuntimeServices;” >> >> · All EfiDriverLibrary functions need to be renamed. >> >> o EfiLibAllocateZeroPool to AllocateZeroPool; >> >> o EfiZeroMem to ZeroMem; >> >> o EfiCopyMem to CopyMem; >> >> o EfiSetMem to SetMem; >> EfiLibLookupUnicodeString to LookupUnicodeString; >> >> Questions: >> Is it true that every developer need to go through this... or is there a >> way to avoid this? Should I not expect to build my EDK I source as is >> without any issue in EDK II env? >> >> Appreciate the assistance! >> >> Thanks, >> Dan > |
From: EDK <ed...@gm...> - 2011-09-01 15:45:34
|
Hi Tian and David, Can you please help answer below questions? In addiiton can you please provide the EDK II group email ID where I can raise questions and get clarifications. Thanks, Daniel On Mon, Aug 29, 2011 at 7:08 PM, EDK <ed...@gm...> wrote: > Hi, > > How would I ensure that EDK Compatibility Package is included? > > Porting EDK 1.06 source to EDK II (UDK 2010 UP4)... To build my source in > EDK II I needed to do the following: > > > · Convert INF file to new format > > · > Remove header files “Tiano.h”, “EfiDriverLib.h”, “PciIO.h”, etc and > include <Uefi.h>, <Library/UefiLib.h>, <Protocol/LoadedImage.h>, etc > > · > Some macro definitions were missing in UDK2010, so we have to > define them by ourselves. I have included those macros below > > o #define EFI_SIGNATURE_16(A, B) ((A) | (B << 8)) > > o #define EFI_SIGNATURE_32(A, B, C, D) (EFI_SIGNATURE_16 (A, B) | > (EFI_SIGNATURE_16 (C, D) << 16)) > > o #define DevicePathNodeLength(a) ( ((a)->Length[0]) | > ((a)->Length[1] << 8) ) > > o #define SetDevicePathNodeLength(a,l) { \ > > (a)->Length[0] = (UINT8) (l); \ > > (a)->Length[1] = (UINT8) ((l) >> 8); \ > > } > > · Make the “EFI_BOOT_SERVICES *gBS; EFI_RUNTIME_SERVICES *gRT; ” > statement in our file because the EfiDriverLibaray is no longer having this > gBS and gRT declaration. > > o We need to get these pointer via “gBS = > SystemTable->BootServices; gRT = SystemTable->RuntimeServices;” > > · All EfiDriverLibrary functions need to be renamed. > > o EfiLibAllocateZeroPool to AllocateZeroPool; > > o EfiZeroMem to ZeroMem; > > o EfiCopyMem to CopyMem; > o EfiSetMem to SetMem; > EfiLibLookupUnicodeString to LookupUnicodeString; > > Questions: > Is it true that every developer need to go through this... or is there a > way to avoid this? Should I not expect to build my EDK I source as is > without any issue in EDK II env? > > Appreciate the assistance! > > Thanks, > Dan > |
From: Daniel M. <dan...@er...> - 2011-09-01 08:23:57
|
Thanks, I will look into it. I know it has the same funcionality, the problem is that the really long name when doing map -r messes the screen, and I have been asked to changed, but yes, the funcionality is the same. BR Daniel ________________________________ From: Carsey, Jaben [mailto:jab...@in...] Sent: den 31 augusti 2011 18:39 To: efi...@li...; edk...@li... Subject: Re: [edk2] Deleting a map name with EFI Shell The issue is the DevicePath that the ram drive is assigned. The algorithm is based on DevicePath. Is there a reason that you care about the length? Usually the consistent name is used only in script (.NSH) files and then you don't need to re-type it much. On a given system it is functionally identical to the FS<?> one. -Jaben From: Daniel Moral [mailto:dan...@er...] Sent: Wednesday, August 31, 2011 9:14 AM To: edk...@li...; efi...@li... Subject: Re: [edk] Deleting a map name with EFI Shell Thank you for your response. I am thinking about other thing then. When I connect a USB stick to my system, it gets the 3 names: fs0, blk0 and f65b0c0 Nevertheless, when I do connecdt a ram disk driver it gets: fs0, blk0, f0agonennapphibbndlnmeaakamjeafdnb I am looking into the algorithm you have told me about, in the UEFI Shell spec and I am trying to find a why to change the name then, not delete it, and reduce it to 7 or 8 characters. But I am not finding the way. Do you think that would be possible? Thank you very much BR Daniel ________________________________ From: Carsey, Jaben [mailto:jab...@in...] Sent: den 31 augusti 2011 17:48 To: efi...@li...; edk...@li... Subject: Re: [edk2] Deleting a map name with EFI Shell Nope. Each hardware device that has BlockIo gets a Blk<?> identifier. Each hardware device that has SimpleFileSystem gets a Fs<?> current file system identifier. Each hardware device that has SimpleFileSystem gets a F<*> consistent file system identifier. When you do a reset then all 3 will be restored. Note: the algorithm for that last one (consistent) is explained in detail in the UEFI Shell spec appendix. -Jaben From: Daniel Moral [mailto:dan...@er...] Sent: Wednesday, August 31, 2011 7:03 AM To: efi...@li...; edk...@li... Subject: [edk] Deleting a map name with EFI Shell Hi, I have a problem with the map command in the EFI Shell. I have a device with 3 different names: "blk0", "fs0" and a really long weird name: "f0agonennapphibbndlnmeaakamjeafdnd". I want to delete the last one, but really delete it because when I do this in the shell: >map -d 0agonennapphibbndlnmeaakamjeafdnd >map It dos not show it but when you execute: >map -r To reset to default mappings, it appears again. Any way to make it dissapear completely? Thank you very much BR Daniel |
From: EDK <ed...@gm...> - 2011-09-01 04:01:11
|
Any response? On Tue, Aug 30, 2011 at 1:06 PM, EDK <ed...@gm...> wrote: > In addition I have below questions: > > I have C++ source which I have been building using EDK 1.06. > > How do I port this to EDK II? > > > > When I attempted to build this using UDK 2010 UP4, I see that it auto > generates header and C file and it attempts to compare this with my C++ > source file and it fails as it doesn’t match. > > > > How do I resolve this issue? > > > > Appreciate the response! > > Thanks, > Daniel > On Mon, Aug 29, 2011 at 7:08 PM, EDK <ed...@gm...> wrote: > >> Hi, >> >> How would I ensure that EDK Compatibility Package is included? >> >> Porting EDK 1.06 source to EDK II (UDK 2010 UP4)... To build my source in >> EDK II I needed to do the following: >> >> >> · Convert INF file to new format >> >> · >> Remove header files “Tiano.h”, “EfiDriverLib.h”, “PciIO.h”, etc and >> include <Uefi.h>, <Library/UefiLib.h>, <Protocol/LoadedImage.h>, etc >> >> · >> Some macro definitions were missing in UDK2010, so we have to >> define them by ourselves. I have included those macros below >> >> o #define EFI_SIGNATURE_16(A, B) ((A) | (B << 8)) >> >> o #define EFI_SIGNATURE_32(A, B, C, D) (EFI_SIGNATURE_16 (A, B) | >> (EFI_SIGNATURE_16 (C, D) << 16)) >> >> o #define DevicePathNodeLength(a) ( ((a)->Length[0]) | >> ((a)->Length[1] << 8) ) >> >> o #define SetDevicePathNodeLength(a,l) { \ >> >> (a)->Length[0] = (UINT8) (l); \ >> >> (a)->Length[1] = (UINT8) ((l) >> 8); \ >> >> } >> >> · Make the “EFI_BOOT_SERVICES *gBS; EFI_RUNTIME_SERVICES *gRT; ” >> statement in our file because the EfiDriverLibaray is no longer having this >> gBS and gRT declaration. >> >> o We need to get these pointer via “gBS = >> SystemTable->BootServices; gRT = SystemTable->RuntimeServices;” >> >> · All EfiDriverLibrary functions need to be renamed. >> >> o EfiLibAllocateZeroPool to AllocateZeroPool; >> >> o EfiZeroMem to ZeroMem; >> >> o EfiCopyMem to CopyMem; >> o EfiSetMem to SetMem; >> EfiLibLookupUnicodeString to LookupUnicodeString; >> >> Questions: >> Is it true that every developer need to go through this... or is there a >> way to avoid this? Should I not expect to build my EDK I source as is >> without any issue in EDK II env? >> >> Appreciate the assistance! >> >> Thanks, >> Dan >> > > |
From: Carsey, J. <jab...@in...> - 2011-08-31 16:43:02
|
The issue is the DevicePath that the ram drive is assigned. The algorithm is based on DevicePath. Is there a reason that you care about the length? Usually the consistent name is used only in script (.NSH) files and then you don't need to re-type it much. On a given system it is functionally identical to the FS<?> one. -Jaben From: Daniel Moral [mailto:dan...@er...] Sent: Wednesday, August 31, 2011 9:14 AM To: edk...@li...; efi...@li... Subject: Re: [edk] Deleting a map name with EFI Shell Thank you for your response. I am thinking about other thing then. When I connect a USB stick to my system, it gets the 3 names: fs0, blk0 and f65b0c0 Nevertheless, when I do connecdt a ram disk driver it gets: fs0, blk0, f0agonennapphibbndlnmeaakamjeafdnb I am looking into the algorithm you have told me about, in the UEFI Shell spec and I am trying to find a why to change the name then, not delete it, and reduce it to 7 or 8 characters. But I am not finding the way. Do you think that would be possible? Thank you very much BR Daniel ________________________________ From: Carsey, Jaben [mailto:jab...@in...] Sent: den 31 augusti 2011 17:48 To: efi...@li...; edk...@li... Subject: Re: [edk2] Deleting a map name with EFI Shell Nope. Each hardware device that has BlockIo gets a Blk<?> identifier. Each hardware device that has SimpleFileSystem gets a Fs<?> current file system identifier. Each hardware device that has SimpleFileSystem gets a F<*> consistent file system identifier. When you do a reset then all 3 will be restored. Note: the algorithm for that last one (consistent) is explained in detail in the UEFI Shell spec appendix. -Jaben From: Daniel Moral [mailto:dan...@er...] Sent: Wednesday, August 31, 2011 7:03 AM To: efi...@li...; edk...@li... Subject: [edk] Deleting a map name with EFI Shell Hi, I have a problem with the map command in the EFI Shell. I have a device with 3 different names: "blk0", "fs0" and a really long weird name: "f0agonennapphibbndlnmeaakamjeafdnd". I want to delete the last one, but really delete it because when I do this in the shell: >map -d 0agonennapphibbndlnmeaakamjeafdnd >map It dos not show it but when you execute: >map -r To reset to default mappings, it appears again. Any way to make it dissapear completely? Thank you very much BR Daniel |
From: Daniel M. <dan...@er...> - 2011-08-31 16:13:46
|
Thank you for your response. I am thinking about other thing then. When I connect a USB stick to my system, it gets the 3 names: fs0, blk0 and f65b0c0 Nevertheless, when I do connecdt a ram disk driver it gets: fs0, blk0, f0agonennapphibbndlnmeaakamjeafdnb I am looking into the algorithm you have told me about, in the UEFI Shell spec and I am trying to find a why to change the name then, not delete it, and reduce it to 7 or 8 characters. But I am not finding the way. Do you think that would be possible? Thank you very much BR Daniel ________________________________ From: Carsey, Jaben [mailto:jab...@in...] Sent: den 31 augusti 2011 17:48 To: efi...@li...; edk...@li... Subject: Re: [edk2] Deleting a map name with EFI Shell Nope. Each hardware device that has BlockIo gets a Blk<?> identifier. Each hardware device that has SimpleFileSystem gets a Fs<?> current file system identifier. Each hardware device that has SimpleFileSystem gets a F<*> consistent file system identifier. When you do a reset then all 3 will be restored. Note: the algorithm for that last one (consistent) is explained in detail in the UEFI Shell spec appendix. -Jaben From: Daniel Moral [mailto:dan...@er...] Sent: Wednesday, August 31, 2011 7:03 AM To: efi...@li...; edk...@li... Subject: [edk] Deleting a map name with EFI Shell Hi, I have a problem with the map command in the EFI Shell. I have a device with 3 different names: "blk0", "fs0" and a really long weird name: "f0agonennapphibbndlnmeaakamjeafdnd". I want to delete the last one, but really delete it because when I do this in the shell: >map -d 0agonennapphibbndlnmeaakamjeafdnd >map It dos not show it but when you execute: >map -r To reset to default mappings, it appears again. Any way to make it dissapear completely? Thank you very much BR Daniel |
From: Carsey, J. <jab...@in...> - 2011-08-31 15:51:46
|
Nope. Each hardware device that has BlockIo gets a Blk<?> identifier. Each hardware device that has SimpleFileSystem gets a Fs<?> current file system identifier. Each hardware device that has SimpleFileSystem gets a F<*> consistent file system identifier. When you do a reset then all 3 will be restored. Note: the algorithm for that last one (consistent) is explained in detail in the UEFI Shell spec appendix. -Jaben From: Daniel Moral [mailto:dan...@er...] Sent: Wednesday, August 31, 2011 7:03 AM To: efi...@li...; edk...@li... Subject: [edk] Deleting a map name with EFI Shell Hi, I have a problem with the map command in the EFI Shell. I have a device with 3 different names: "blk0", "fs0" and a really long weird name: "f0agonennapphibbndlnmeaakamjeafdnd". I want to delete the last one, but really delete it because when I do this in the shell: >map -d 0agonennapphibbndlnmeaakamjeafdnd >map It dos not show it but when you execute: >map -r To reset to default mappings, it appears again. Any way to make it dissapear completely? Thank you very much BR Daniel |
From: Daniel M. <dan...@er...> - 2011-08-31 14:02:57
|
Hi, I have a problem with the map command in the EFI Shell. I have a device with 3 different names: "blk0", "fs0" and a really long weird name: "f0agonennapphibbndlnmeaakamjeafdnd". I want to delete the last one, but really delete it because when I do this in the shell: >map -d 0agonennapphibbndlnmeaakamjeafdnd >map It dos not show it but when you execute: >map -r To reset to default mappings, it appears again. Any way to make it dissapear completely? Thank you very much BR Daniel |
From: EDK <ed...@gm...> - 2011-08-30 17:07:04
|
In addition I have below questions: I have C++ source which I have been building using EDK 1.06. How do I port this to EDK II? When I attempted to build this using UDK 2010 UP4, I see that it auto generates header and C file and it attempts to compare this with my C++ source file and it fails as it doesn’t match. How do I resolve this issue? Appreciate the response! Thanks, Daniel On Mon, Aug 29, 2011 at 7:08 PM, EDK <ed...@gm...> wrote: > Hi, > > How would I ensure that EDK Compatibility Package is included? > > Porting EDK 1.06 source to EDK II (UDK 2010 UP4)... To build my source in > EDK II I needed to do the following: > > > · Convert INF file to new format > > · > Remove header files “Tiano.h”, “EfiDriverLib.h”, “PciIO.h”, etc and > include <Uefi.h>, <Library/UefiLib.h>, <Protocol/LoadedImage.h>, etc > > · > Some macro definitions were missing in UDK2010, so we have to > define them by ourselves. I have included those macros below > > o #define EFI_SIGNATURE_16(A, B) ((A) | (B << 8)) > > o #define EFI_SIGNATURE_32(A, B, C, D) (EFI_SIGNATURE_16 (A, B) | > (EFI_SIGNATURE_16 (C, D) << 16)) > > o #define DevicePathNodeLength(a) ( ((a)->Length[0]) | > ((a)->Length[1] << 8) ) > > o #define SetDevicePathNodeLength(a,l) { \ > > (a)->Length[0] = (UINT8) (l); \ > > (a)->Length[1] = (UINT8) ((l) >> 8); \ > > } > > · Make the “EFI_BOOT_SERVICES *gBS; EFI_RUNTIME_SERVICES *gRT; ” > statement in our file because the EfiDriverLibaray is no longer having this > gBS and gRT declaration. > > o We need to get these pointer via “gBS = > SystemTable->BootServices; gRT = SystemTable->RuntimeServices;” > > · All EfiDriverLibrary functions need to be renamed. > > o EfiLibAllocateZeroPool to AllocateZeroPool; > > o EfiZeroMem to ZeroMem; > > o EfiCopyMem to CopyMem; > o EfiSetMem to SetMem; > EfiLibLookupUnicodeString to LookupUnicodeString; > > Questions: > Is it true that every developer need to go through this... or is there a > way to avoid this? Should I not expect to build my EDK I source as is > without any issue in EDK II env? > > Appreciate the assistance! > > Thanks, > Dan > |
From: Daniel M. <dan...@er...> - 2011-08-30 11:44:34
|
I have been trying to port efifmt utility using the tutorial present in the shell developer´s guide and this is what I got: In Shell.inf in [sources.common] I added: EfiDiskUtility\efifmt\efifmt.cxx In the DSC build file, in order to compile the cxx: [compile.x64.cxx] In efifmt.cxx there is this code: ------------------------------------- extern "C" EFI_STATUS EFIAPI InitializeEfiFmtApplication( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable ); extern "C" { EFI_APPLICATION_ENTRY_POINT (InitializeEfiFmtApplication) } extern "C" { EFI_STATUS EFIAPI InitializeEfiFmtApplication( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable ) { EFI_LOADED_IMAGE *LoadedImage; EFI_STATUS Status; /* * Initialize the.... ------------------------------------- And then in the cmddisp.c I added this in the "SEnvInternalCommands[] = {": InitializeEfiFmtApplication, L"efifmt", And this in the "EFI_MONOSHELL_CODE" : EFI_STATUS EFIAPI InitializeEfiFmtApplication( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable ); I think I have followed the steps in the tutorial (which had worked for me using other applications made by my own) nevertheless I continue to get this message when trying to build the shell: ShellLocal.lib(cmddisp.obj) : error LNK2001: unresolved external symbol InitializeEfiFmtApplicat ion C:\EDK\Sample\Platform\X64\Build\X64\Shell.dll : fatal error LNK1120: 1 unresolved externals NMAKE : fatal error U1077: 'C:\WINDDK\3790.1830\bin\win64\x86\amd64\link' : return code '0x460' Stop. ProcessDsc : error E0000: Multi-thread build components 0 failure NMAKE : fatal error U1077: 'C:\EDK\Sample\Platform\X64\Build\Tools\ProcessDsc' : return code '0x 2' Stop. What do you think am I doing wrong? Thanks _____________________________________________ From: Daniel Moral Sent: den 24 augusti 2011 14:22 To: efi...@li...; 'edk...@li...' Subject: Porting disk utilities to internal commands Hi! I have been using the EFI Disk Utilities: http://www.intel.dk/technology/efi/agree_diskutil.htm and the mkramdisk in EFI toolkit to create a RAM filesystem. I am trying to port the applications so they can be used as internal commands in my EFI Shell. I have successfully ported diskpart utility, cause it is written as any other kind of Shell application. Nevertheless, I am not able to port efifmt or eficheck. I mean, how should I modify Shell.inf file according to the EFI_Shell_Developer_Guide_Ver0-91 or the shell dispatcher, which are the entry points? Which .c files should I add to sources.common knowing the the sources are in .cxx format? And so on, I know that there must be a way, but I am a bit lost. I will really appreciate some help :) Thank you |
From: EDK <ed...@gm...> - 2011-08-29 23:08:16
|
Hi, How would I ensure that EDK Compatibility Package is included? Porting EDK 1.06 source to EDK II (UDK 2010 UP4)... To build my source in EDK II I needed to do the following: · Convert INF file to new format · Remove header files “Tiano.h”, “EfiDriverLib.h”, “PciIO.h”, etc and include <Uefi.h>, <Library/UefiLib.h>, <Protocol/LoadedImage.h>, etc · Some macro definitions were missing in UDK2010, so we have to define them by ourselves. I have included those macros below o #define EFI_SIGNATURE_16(A, B) ((A) | (B << 8)) o #define EFI_SIGNATURE_32(A, B, C, D) (EFI_SIGNATURE_16 (A, B) | (EFI_SIGNATURE_16 (C, D) << 16)) o #define DevicePathNodeLength(a) ( ((a)->Length[0]) | ((a)->Length[1] << 8) ) o #define SetDevicePathNodeLength(a,l) { \ (a)->Length[0] = (UINT8) (l); \ (a)->Length[1] = (UINT8) ((l) >> 8); \ } · Make the “EFI_BOOT_SERVICES *gBS; EFI_RUNTIME_SERVICES *gRT; ” statement in our file because the EfiDriverLibaray is no longer having this gBS and gRT declaration. o We need to get these pointer via “gBS = SystemTable->BootServices; gRT = SystemTable->RuntimeServices;” · All EfiDriverLibrary functions need to be renamed. o EfiLibAllocateZeroPool to AllocateZeroPool; o EfiZeroMem to ZeroMem; o EfiCopyMem to CopyMem; o EfiSetMem to SetMem; EfiLibLookupUnicodeString to LookupUnicodeString; Questions: Is it true that every developer need to go through this... or is there a way to avoid this? Should I not expect to build my EDK I source as is without any issue in EDK II env? Appreciate the assistance! Thanks, Dan |
From: Daniel J. G. M. <na...@gm...> - 2011-08-29 19:06:01
|
Hi and thanks for your answer. I have one binary shell application, which I am unable to port to internal command following the instructions in the getting started tutorial. The application is EFIFMT.EFI from EFI Disk Utilities ( http://www.intel.dk/technology/efi/diskutil_overview.htm). Therefore I was trying to figure out a way to build the binary (EFIFMT.EFI), include it in the shell and then make a internal command to load and execute it. What I was trying is to create an application which would load and then start the binary image EFIFMT.EFI, but I have been unable to do this cause I get a message saying that the binary should be started from the shell itself, not from another shell application. And I do not know how to do this. Thank you very much. BR Daniel 2011/8/29 Carsey, Jaben <jab...@in...> > The short answer is ‘maybe.’**** > > ** ** > > Do you want to include 2 applications as internal commands in the shell? > Do you want to include 1 internal command and 1 internal binary? It’s not > clear to me.**** > > ** ** > > In the UEFI Shell there is, I think, no way (without violating the spec) to > have either an internal command or a shell application call an internal > command.**** > > ** ** > > In the EDK Shell this restriction is not present.**** > > ** ** > > -Jaben**** > > ** ** > > *From:* Daniel Jesús García Moral [mailto:na...@gm...] > *Sent:* Monday, August 29, 2011 10:42 AM > *To:* efi...@li...; > edk...@li... > *Subject:* [edk] Including a shell application binary as a shell internal > command**** > > ** ** > > Hi all,**** > > ** ** > > I have been reading on how to port shell external commands to internal > ones. Nevertheless I would like to know if there is some way to port a > binary shell application to a internal command: I mean, creating a shell > application (which I would later port to internal command ) which launches > another shell application included as a binary.**** > > ** ** > > Other option would be to create directly an internal command from a binary. > **** > > ** ** > > Any tutorial or advice on how to do this?**** > > ** ** > > Thanks in advance**** > > ** ** > > BR**** > > ** ** > > Daniel**** > |
From: Carsey, J. <jab...@in...> - 2011-08-29 18:58:41
|
The short answer is 'maybe.' Do you want to include 2 applications as internal commands in the shell? Do you want to include 1 internal command and 1 internal binary? It's not clear to me. In the UEFI Shell there is, I think, no way (without violating the spec) to have either an internal command or a shell application call an internal command. In the EDK Shell this restriction is not present. -Jaben From: Daniel Jesús García Moral [mailto:na...@gm...] Sent: Monday, August 29, 2011 10:42 AM To: efi...@li...; edk...@li... Subject: [edk] Including a shell application binary as a shell internal command Hi all, I have been reading on how to port shell external commands to internal ones. Nevertheless I would like to know if there is some way to port a binary shell application to a internal command: I mean, creating a shell application (which I would later port to internal command ) which launches another shell application included as a binary. Other option would be to create directly an internal command from a binary. Any tutorial or advice on how to do this? Thanks in advance BR Daniel |
From: Daniel J. G. M. <na...@gm...> - 2011-08-29 17:42:34
|
Hi all, I have been reading on how to port shell external commands to internal ones. Nevertheless I would like to know if there is some way to port a binary shell application to a internal command: I mean, creating a shell application (which I would later port to internal command ) which launches another shell application included as a binary. Other option would be to create directly an internal command from a binary. Any tutorial or advice on how to do this? Thanks in advance BR Daniel |
From: Daniel M. <dan...@er...> - 2011-08-26 15:34:55
|
Hi, In other thread I was asking how could I include the Efi toolkit driver in the shell and launch internally without needing external files. Thanks to Joe Thomas[Joe...@do...] I have been able to accomplish it. I took the driver.efi file and included it as an array of ascii bytes in a header file. Later I loaded this image and started it without any problem. Now I am trying to do the same with the Disk Utility Toolkit applications, specifically with Efifmt.efi, cause I have not figured out other way to port is as internal command. So I have created a new shell application, in this application I load the efifmt.efi (which is also a shell application) and then I try to start it with BS->StartImage but I get this message: "InitShellApp: Application not started from Shell" And I understand it is logical that the Shell complains when you try to execute a shell command from another application which is not the shell. My question is, is there any way to do this work? Thank you very much in advance for your help BR Daniel |
From: Daniel M. <dan...@er...> - 2011-08-25 12:44:38
|
I would like you all to ask you another thing, a weird thing is happening to me: When I load the ramdisk driver using mkramdisk there is no problem, it creates it with a FAT16 filesystem that I can use. But when I load the driver using the shell cmd "load", like "load RAMDISK.efi" it creates it, and it looks like a FAT16 system when I analyse it with dblk, but it doesnt activate the filesystem or..I do not know, because I cannot do ls for example. Do you know why could it be? Thanks BR Daniel ________________________________ From: Joe Thomas [mailto:Joe...@do...] Sent: den 24 augusti 2011 20:27 To: edk...@li...; efi...@li... Subject: Re: [edk2] Toolkit applications as internal commands Daniel, I managed to do pretty much what you're looking to do under Edk1 by: a) Rewriting ramdisk.c to create a ramdisk.efi that was tailored to my needs b) Converting ramdisk.efi into a UINT8 array in a text file [ UINT8 RamDiskDriver[] = { <ascii bytes> }; } c) Hacking newshell/init.c to include the text file and then using BS->LoadImage() and BS->StartImage() to "load" the driver and start it. d) As extra functionality, it also "includes" a compressed disk image coded as above, and then uncompress'es the image onto the RamDisk. e) Coupled with a tftp client, I can PXE boot diskless and run a canned startup.nsh script that will download and execute additional apps - we use it to facilitate automated testing Anyways, the code looks something like: RamDiskDriver.h UINT8 RamDiskDriver[] = { 0x##, 0x##, 0x##... }; InitRamDisk.c #include "RamDiskDriver.h" ... // "Load" the driver Status = BS->LoadImage( FALSE, ParentImage, // Parent image handle from Shell NULL, RamDiskDriver, sizeof(RamDiskDriver), &ImageHandle // New image handle for RamDisk driver ); // If need be, find the LoadedImageProtocol handle for ImageHandle and set LoadOptions to your startup options. // For example, ala mkramdisk, LoadedImage->LoadOptions = L".\\ramdisk.efi 64"; // Start the driver if (!EFI_ERROR(Status)) Status = BS->StartImage( ImageHandle, NULL, NULL ); I did have some issues with the ramdisk being recognized and had to get the shell to execute a 'reconnect -r' and 'map -r' command by calling SEnvExecute()... Hope this provides some insight.... -Joe Thomas From: Daniel Moral [mailto:dan...@er...] Sent: Wednesday, August 24, 2011 5:40 AM To: edk...@li...; efi...@li... Subject: [edk2] Toolkit applications as internal commands Hi! I have been trying to develop a system to create a formatted RAM disk using the toolkit tool mkramdisk.efi which is used to load the driver ramdisk.efi. Now I would like to have this tool instaled as an internal command in my shell, so I do not need to use the external application everytime I need it. I have been trying to figure out how to solve the problem but I cannot. I have read the EFI_Shell_Developer_Guide_Ver0-91 where it is explained how to port an external to an internal command, and I was able to do it with an application I developed myself. But I cannot apply that to this case and I do not know where can I start looking. Could anyone help me a bit? Thanks! BR Daniel |
From: Daniel M. <dan...@er...> - 2011-08-25 08:26:40
|
Thank you very much for both responses :) I am going to try your approach Joe BR Daniel ________________________________ From: Joe Thomas [mailto:Joe...@do...] Sent: den 24 augusti 2011 20:27 To: edk...@li...; efi...@li... Subject: Re: [edk2] Toolkit applications as internal commands Daniel, I managed to do pretty much what you're looking to do under Edk1 by: a) Rewriting ramdisk.c to create a ramdisk.efi that was tailored to my needs b) Converting ramdisk.efi into a UINT8 array in a text file [ UINT8 RamDiskDriver[] = { <ascii bytes> }; } c) Hacking newshell/init.c to include the text file and then using BS->LoadImage() and BS->StartImage() to "load" the driver and start it. d) As extra functionality, it also "includes" a compressed disk image coded as above, and then uncompress'es the image onto the RamDisk. e) Coupled with a tftp client, I can PXE boot diskless and run a canned startup.nsh script that will download and execute additional apps - we use it to facilitate automated testing Anyways, the code looks something like: RamDiskDriver.h UINT8 RamDiskDriver[] = { 0x##, 0x##, 0x##... }; InitRamDisk.c #include "RamDiskDriver.h" ... // "Load" the driver Status = BS->LoadImage( FALSE, ParentImage, // Parent image handle from Shell NULL, RamDiskDriver, sizeof(RamDiskDriver), &ImageHandle // New image handle for RamDisk driver ); // If need be, find the LoadedImageProtocol handle for ImageHandle and set LoadOptions to your startup options. // For example, ala mkramdisk, LoadedImage->LoadOptions = L".\\ramdisk.efi 64"; // Start the driver if (!EFI_ERROR(Status)) Status = BS->StartImage( ImageHandle, NULL, NULL ); I did have some issues with the ramdisk being recognized and had to get the shell to execute a 'reconnect -r' and 'map -r' command by calling SEnvExecute()... Hope this provides some insight.... -Joe Thomas From: Daniel Moral [mailto:dan...@er...] Sent: Wednesday, August 24, 2011 5:40 AM To: edk...@li...; efi...@li... Subject: [edk2] Toolkit applications as internal commands Hi! I have been trying to develop a system to create a formatted RAM disk using the toolkit tool mkramdisk.efi which is used to load the driver ramdisk.efi. Now I would like to have this tool instaled as an internal command in my shell, so I do not need to use the external application everytime I need it. I have been trying to figure out how to solve the problem but I cannot. I have read the EFI_Shell_Developer_Guide_Ver0-91 where it is explained how to port an external to an internal command, and I was able to do it with an application I developed myself. But I cannot apply that to this case and I do not know where can I start looking. Could anyone help me a bit? Thanks! BR Daniel |
From: Joe T. <Joe...@do...> - 2011-08-24 18:27:51
|
Daniel, I managed to do pretty much what you're looking to do under Edk1 by: a) Rewriting ramdisk.c to create a ramdisk.efi that was tailored to my needs b) Converting ramdisk.efi into a UINT8 array in a text file [ UINT8 RamDiskDriver[] = { <ascii bytes> }; } c) Hacking newshell/init.c to include the text file and then using BS->LoadImage() and BS->StartImage() to "load" the driver and start it. d) As extra functionality, it also "includes" a compressed disk image coded as above, and then uncompress'es the image onto the RamDisk. e) Coupled with a tftp client, I can PXE boot diskless and run a canned startup.nsh script that will download and execute additional apps - we use it to facilitate automated testing Anyways, the code looks something like: RamDiskDriver.h UINT8 RamDiskDriver[] = { 0x##, 0x##, 0x##... }; InitRamDisk.c #include "RamDiskDriver.h" ... // "Load" the driver Status = BS->LoadImage( FALSE, ParentImage, // Parent image handle from Shell NULL, RamDiskDriver, sizeof(RamDiskDriver), &ImageHandle // New image handle for RamDisk driver ); // If need be, find the LoadedImageProtocol handle for ImageHandle and set LoadOptions to your startup options. // For example, ala mkramdisk, LoadedImage->LoadOptions = L".\\ramdisk.efi 64"; // Start the driver if (!EFI_ERROR(Status)) Status = BS->StartImage( ImageHandle, NULL, NULL ); I did have some issues with the ramdisk being recognized and had to get the shell to execute a 'reconnect -r' and 'map -r' command by calling SEnvExecute()... Hope this provides some insight.... -Joe Thomas From: Daniel Moral [mailto:dan...@er...] Sent: Wednesday, August 24, 2011 5:40 AM To: edk...@li...; efi...@li... Subject: [edk2] Toolkit applications as internal commands Hi! I have been trying to develop a system to create a formatted RAM disk using the toolkit tool mkramdisk.efi which is used to load the driver ramdisk.efi. Now I would like to have this tool instaled as an internal command in my shell, so I do not need to use the external application everytime I need it. I have been trying to figure out how to solve the problem but I cannot. I have read the EFI_Shell_Developer_Guide_Ver0-91 where it is explained how to port an external to an internal command, and I was able to do it with an application I developed myself. But I cannot apply that to this case and I do not know where can I start looking. Could anyone help me a bit? Thanks! BR Daniel |
From: Carsey, J. <jab...@in...> - 2011-08-24 15:48:43
|
I haven't used that in a while, but if I remember correctly part of the problem is that mkramdisk.efi is a EFI Shell extension that uses the ramdisk.efi driver. You would need to find a way to get both binaries built into your EFI Shell to make it work (or move the functionality from the driver to somewhere else). -Jaben From: Daniel Moral [mailto:dan...@er...] Sent: Wednesday, August 24, 2011 3:40 AM To: edk...@li...; efi...@li... Subject: [edk] Toolkit applications as internal commands Hi! I have been trying to develop a system to create a formatted RAM disk using the toolkit tool mkramdisk.efi which is used to load the driver ramdisk.efi. Now I would like to have this tool instaled as an internal command in my shell, so I do not need to use the external application everytime I need it. I have been trying to figure out how to solve the problem but I cannot. I have read the EFI_Shell_Developer_Guide_Ver0-91 where it is explained how to port an external to an internal command, and I was able to do it with an application I developed myself. But I cannot apply that to this case and I do not know where can I start looking. Could anyone help me a bit? Thanks! BR Daniel |
From: Daniel M. <dan...@er...> - 2011-08-24 12:21:50
|
Hi! I have been using the EFI Disk Utilities: http://www.intel.dk/technology/efi/agree_diskutil.htm and the mkramdisk in EFI toolkit to create a RAM filesystem. I am trying to port the applications so they can be used as internal commands in my EFI Shell. I have successfully ported diskpart utility, cause it is written as any other kind of Shell application. Nevertheless, I am not able to port efifmt or eficheck. I mean, how should I modify Shell.inf file according to the EFI_Shell_Developer_Guide_Ver0-91 or the shell dispatcher, which are the entry points? Which .c files should I add to sources.common knowing the the sources are in .cxx format? And so on, I know that there must be a way, but I am a bit lost. I will really appreciate some help :) Thank you |
From: Daniel M. <dan...@er...> - 2011-08-24 10:39:47
|
Hi! I have been trying to develop a system to create a formatted RAM disk using the toolkit tool mkramdisk.efi which is used to load the driver ramdisk.efi. Now I would like to have this tool instaled as an internal command in my shell, so I do not need to use the external application everytime I need it. I have been trying to figure out how to solve the problem but I cannot. I have read the EFI_Shell_Developer_Guide_Ver0-91 where it is explained how to port an external to an internal command, and I was able to do it with an application I developed myself. But I cannot apply that to this case and I do not know where can I start looking. Could anyone help me a bit? Thanks! BR Daniel |