* "StdLibPkg" branch on edk2-staging @ 2021-07-27 15:48 Maciej Rabeda 2021-07-28 15:34 ` [edk2-devel] " Rebecca Cran 0 siblings, 1 reply; 20+ messages in thread From: Maciej Rabeda @ 2021-07-27 15:48 UTC (permalink / raw) To: devel@edk2.groups.io Hi, I have submitted a new edk2-staging branch named "StdLibPkg". https://github.com/tianocore/edk2-staging/tree/StdLibPkg Branch contains initial implementation of C standard library and intrinsic library for UEFI to smoothen open-source submodule integration (instead of implementing those functions in each new package introducing an external submodule dependent on C stdlib). More details on the package, its contents and feature scope are placed in that branch, in StdLibPkg/Readme.md file. https://github.com/tianocore/edk2-staging/blob/StdLibPkg/StdLibPkg/Readme.md Feel free to play around. Any and all feedback is welcome. Thanks, Maciej ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [edk2-devel] "StdLibPkg" branch on edk2-staging 2021-07-27 15:48 "StdLibPkg" branch on edk2-staging Maciej Rabeda @ 2021-07-28 15:34 ` Rebecca Cran 2021-07-28 15:45 ` Maciej Rabeda 2021-07-28 22:25 ` Tim Lewis 0 siblings, 2 replies; 20+ messages in thread From: Rebecca Cran @ 2021-07-28 15:34 UTC (permalink / raw) To: devel, maciej.rabeda Are you aware of the edk2-libc project at https://github.com/tianocore/edk2-libc ? -- Rebecca Cran On 7/27/21 9:48 AM, Maciej Rabeda wrote: > Hi, > > I have submitted a new edk2-staging branch named "StdLibPkg". > https://github.com/tianocore/edk2-staging/tree/StdLibPkg > > Branch contains initial implementation of C standard library and > intrinsic library for UEFI to smoothen open-source submodule > integration (instead of implementing those functions in each new > package introducing an external submodule dependent on C stdlib). > > More details on the package, its contents and feature scope are placed > in that branch, in StdLibPkg/Readme.md file. > https://github.com/tianocore/edk2-staging/blob/StdLibPkg/StdLibPkg/Readme.md > > > Feel free to play around. Any and all feedback is welcome. > > Thanks, > Maciej > > > > > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [edk2-devel] "StdLibPkg" branch on edk2-staging 2021-07-28 15:34 ` [edk2-devel] " Rebecca Cran @ 2021-07-28 15:45 ` Maciej Rabeda 2021-07-28 15:59 ` Rebecca Cran 2021-07-28 22:25 ` Tim Lewis 1 sibling, 1 reply; 20+ messages in thread From: Maciej Rabeda @ 2021-07-28 15:45 UTC (permalink / raw) To: Rebecca Cran, devel Naturally. Since it is there, why is it not used for brotli, openssl in CryptoPkg or jansson in RedfishPkg? On 28-Jul-21 17:34, Rebecca Cran wrote: > Are you aware of the edk2-libc project at > https://github.com/tianocore/edk2-libc ? > > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [edk2-devel] "StdLibPkg" branch on edk2-staging 2021-07-28 15:45 ` Maciej Rabeda @ 2021-07-28 15:59 ` Rebecca Cran 0 siblings, 0 replies; 20+ messages in thread From: Rebecca Cran @ 2021-07-28 15:59 UTC (permalink / raw) To: devel, maciej.rabeda I think it's mostly been abandoned, and people are expected to use native UEFI functions instead. Personally I'd like to see it continue to be maintained. -- Rebecca Cran On 7/28/21 9:45 AM, Maciej Rabeda wrote: > Naturally. Since it is there, why is it not used for brotli, openssl > in CryptoPkg or jansson in RedfishPkg? > > On 28-Jul-21 17:34, Rebecca Cran wrote: >> Are you aware of the edk2-libc project at >> https://github.com/tianocore/edk2-libc ? >> >> > > > > > > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [edk2-devel] "StdLibPkg" branch on edk2-staging 2021-07-28 15:34 ` [edk2-devel] " Rebecca Cran 2021-07-28 15:45 ` Maciej Rabeda @ 2021-07-28 22:25 ` Tim Lewis 2021-07-28 22:44 ` Rebecca Cran 1 sibling, 1 reply; 20+ messages in thread From: Tim Lewis @ 2021-07-28 22:25 UTC (permalink / raw) To: devel, rebecca, maciej.rabeda I would point out that there was significant work on libc in the past (see https://github.com/andreiw/UefiToolsPkg) but never any help to upstream these fixes, including making sure that many Linux tools can easily be ported. I myself have used it to port several BSD utilities over, but each time there will little nits with the existing port and even small patches were returned with "no current maintainer" In terms of making other projects use libc, I think the other objection was that it was never optimized for non-shell usage. Other projects (lie https://github.com/tianocore/edk2-staging/tree/CdePkg ) have tried to remedy this, but never with source checked in. But it allows support under PEI, DXE, etc. Tim -----Original Message----- From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Rebecca Cran Sent: Wednesday, July 28, 2021 8:34 AM To: devel@edk2.groups.io; maciej.rabeda@linux.intel.com Subject: Re: [edk2-devel] "StdLibPkg" branch on edk2-staging Are you aware of the edk2-libc project at https://github.com/tianocore/edk2-libc ? -- Rebecca Cran On 7/27/21 9:48 AM, Maciej Rabeda wrote: > Hi, > > I have submitted a new edk2-staging branch named "StdLibPkg". > https://github.com/tianocore/edk2-staging/tree/StdLibPkg > > Branch contains initial implementation of C standard library and > intrinsic library for UEFI to smoothen open-source submodule > integration (instead of implementing those functions in each new > package introducing an external submodule dependent on C stdlib). > > More details on the package, its contents and feature scope are placed > in that branch, in StdLibPkg/Readme.md file. > https://github.com/tianocore/edk2-staging/blob/StdLibPkg/StdLibPkg/Readme.md > > > Feel free to play around. Any and all feedback is welcome. > > Thanks, > Maciej > > > > > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [edk2-devel] "StdLibPkg" branch on edk2-staging 2021-07-28 22:25 ` Tim Lewis @ 2021-07-28 22:44 ` Rebecca Cran 2021-08-04 11:03 ` Leif Lindholm 0 siblings, 1 reply; 20+ messages in thread From: Rebecca Cran @ 2021-07-28 22:44 UTC (permalink / raw) To: tim.lewis, devel, maciej.rabeda Cc: Andrew Fish, Leif Lindholm, Michael D Kinney CC'ing the Tianocore stewards. I've had problems getting a recent patch committed just to make edk2-libc work against current edk2 master. Tianocore stewards: do we need new or additional maintainers for edk2-libc, or is there a plan to deprecate it? The current maintainers are listed as: StdLib, StdLibPrivateInternalFiles W: https://github.com/tianocore/tianocore.github.io/wiki/StdLib M: Daryl McDaniel <edk2-lists@mc2research.org> M: Jaben Carsey <jaben.carsey@intel.com> -- Rebecca Cran On 7/28/21 4:25 PM, tim.lewis@insyde.com wrote: > I would point out that there was significant work on libc in the past (see https://github.com/andreiw/UefiToolsPkg) but never any help to upstream these fixes, including making sure that many Linux tools can easily be ported. I myself have used it to port several BSD utilities over, but each time there will little nits with the existing port and even small patches were returned with "no current maintainer" > > In terms of making other projects use libc, I think the other objection was that it was never optimized for non-shell usage. Other projects (lie https://github.com/tianocore/edk2-staging/tree/CdePkg ) have tried to remedy this, but never with source checked in. But it allows support under PEI, DXE, etc. > > Tim > > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Rebecca Cran > Sent: Wednesday, July 28, 2021 8:34 AM > To: devel@edk2.groups.io; maciej.rabeda@linux.intel.com > Subject: Re: [edk2-devel] "StdLibPkg" branch on edk2-staging > > Are you aware of the edk2-libc project at https://github.com/tianocore/edk2-libc ? > > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [edk2-devel] "StdLibPkg" branch on edk2-staging 2021-07-28 22:44 ` Rebecca Cran @ 2021-08-04 11:03 ` Leif Lindholm 2021-08-05 3:35 ` Andrew Fish 0 siblings, 1 reply; 20+ messages in thread From: Leif Lindholm @ 2021-08-04 11:03 UTC (permalink / raw) To: Rebecca Cran Cc: tim.lewis, devel, maciej.rabeda, Andrew Fish, Michael D Kinney Hi Rebecca, I think the truth is we're a bit resigned about edk2-libc in general. My view is it should be either maintained or deprecated (or replaced). And maintainership *should* mean at least keeping it up to date with security fixes. I personally have no enthusiasm for the topic, but if there existed: - An up-to-date codebase. - A plan for keeping the coodbase up-to-date (as opposed to a plan to keep the codebase up-to-date). - At least a couple of maintainers. I would have no objection to that existing under the TianoCore umbrella. Best Regards, Leif On Wed, Jul 28, 2021 at 16:44:02 -0600, Rebecca Cran wrote: > CC'ing the Tianocore stewards. > > > I've had problems getting a recent patch committed just to make edk2-libc > work against current edk2 master. > > Tianocore stewards: do we need new or additional maintainers for edk2-libc, > or is there a plan to deprecate it? > > > The current maintainers are listed as: > > StdLib, StdLibPrivateInternalFiles > W: https://github.com/tianocore/tianocore.github.io/wiki/StdLib > M: Daryl McDaniel <edk2-lists@mc2research.org> > M: Jaben Carsey <jaben.carsey@intel.com> > > > -- > Rebecca Cran > > > On 7/28/21 4:25 PM, tim.lewis@insyde.com wrote: > > I would point out that there was significant work on libc in the > past (see https://github.com/andreiw/UefiToolsPkg) but never any > help to upstream these fixes, including making sure that many Linux > tools can easily be ported. I myself have used it to port several > BSD utilities over, but each time there will little nits with the > existing port and even small patches were returned with "no current > maintainer" > > > > In terms of making other projects use libc, I think the other > > objection was that it was never optimized for non-shell > > usage. Other projects (lie > > https://github.com/tianocore/edk2-staging/tree/CdePkg ) have tried > > to remedy this, but never with source checked in. But it allows > > support under PEI, DXE, etc. > > > > Tim > > > > -----Original Message----- > > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Rebecca Cran > > Sent: Wednesday, July 28, 2021 8:34 AM > > To: devel@edk2.groups.io; maciej.rabeda@linux.intel.com > > Subject: Re: [edk2-devel] "StdLibPkg" branch on edk2-staging > > > > Are you aware of the edk2-libc project at https://github.com/tianocore/edk2-libc ? > > > > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [edk2-devel] "StdLibPkg" branch on edk2-staging 2021-08-04 11:03 ` Leif Lindholm @ 2021-08-05 3:35 ` Andrew Fish 2021-08-05 4:14 ` Kilian Kegel [not found] ` <16984DDFBF70DC40.16396@groups.io> 0 siblings, 2 replies; 20+ messages in thread From: Andrew Fish @ 2021-08-05 3:35 UTC (permalink / raw) To: edk2-devel-groups-io, Leif Lindholm Cc: Rebecca Cran, tim.lewis, maciej.rabeda, Mike Kinney I’d guess I’d also ask the why not NewLib? Especially since Red Hat helps out with edk2…. Thanks, Andrew Fish > On Aug 4, 2021, at 4:03 AM, Leif Lindholm <leif@nuviainc.com> wrote: > > Hi Rebecca, > > I think the truth is we're a bit resigned about edk2-libc in general. > My view is it should be either maintained or deprecated (or replaced). > > And maintainership *should* mean at least keeping it up to date with > security fixes. > > I personally have no enthusiasm for the topic, but if there existed: > - An up-to-date codebase. > - A plan for keeping the coodbase up-to-date (as opposed to a plan to > keep the codebase up-to-date). > - At least a couple of maintainers. > I would have no objection to that existing under the TianoCore > umbrella. > > Best Regards, > > Leif > > On Wed, Jul 28, 2021 at 16:44:02 -0600, Rebecca Cran wrote: >> CC'ing the Tianocore stewards. >> >> >> I've had problems getting a recent patch committed just to make edk2-libc >> work against current edk2 master. >> >> Tianocore stewards: do we need new or additional maintainers for edk2-libc, >> or is there a plan to deprecate it? >> >> >> The current maintainers are listed as: >> >> StdLib, StdLibPrivateInternalFiles >> W: https://github.com/tianocore/tianocore.github.io/wiki/StdLib >> M: Daryl McDaniel <edk2-lists@mc2research.org> >> M: Jaben Carsey <jaben.carsey@intel.com> >> >> >> -- >> Rebecca Cran >> >> >> On 7/28/21 4:25 PM, tim.lewis@insyde.com wrote: >>> I would point out that there was significant work on libc in the >> past (see https://github.com/andreiw/UefiToolsPkg) but never any >> help to upstream these fixes, including making sure that many Linux >> tools can easily be ported. I myself have used it to port several >> BSD utilities over, but each time there will little nits with the >> existing port and even small patches were returned with "no current >> maintainer" >>> >>> In terms of making other projects use libc, I think the other >>> objection was that it was never optimized for non-shell >>> usage. Other projects (lie >>> https://github.com/tianocore/edk2-staging/tree/CdePkg ) have tried >>> to remedy this, but never with source checked in. But it allows >>> support under PEI, DXE, etc. >>> >>> Tim >>> >>> -----Original Message----- >>> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Rebecca Cran >>> Sent: Wednesday, July 28, 2021 8:34 AM >>> To: devel@edk2.groups.io; maciej.rabeda@linux.intel.com >>> Subject: Re: [edk2-devel] "StdLibPkg" branch on edk2-staging >>> >>> Are you aware of the edk2-libc project at https://github.com/tianocore/edk2-libc ? >>> >>> > > > > > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [edk2-devel] "StdLibPkg" branch on edk2-staging 2021-08-05 3:35 ` Andrew Fish @ 2021-08-05 4:14 ` Kilian Kegel [not found] ` <16984DDFBF70DC40.16396@groups.io> 1 sibling, 0 replies; 20+ messages in thread From: Kilian Kegel @ 2021-08-05 4:14 UTC (permalink / raw) To: devel@edk2.groups.io, afish@apple.com, Leif Lindholm Cc: Rebecca Cran, tim.lewis@insyde.com, maciej.rabeda@linux.intel.com, Mike Kinney [-- Attachment #1: Type: text/plain, Size: 6696 bytes --] Hi all, I plan to come back with the https://github.com/tianocore/edk2-staging/tree/CdePkg end of this year and to unroll the source code of fundamental parts of my C Library and discuss that along the 30. anniversary of “The C Book” https://publications.gbdirect.co.uk/c_book/chapter9 Additionally I will discuss the details you need to know: 1. about the differences C90/C95/C99 in language and library 2. how to get HOSTED ENVIRONMENT for UEFI POST drivers 3. how to get Intel/AMD TimeStampCounter based precise time calibration - platform, processor and chipset independent for x86 UEFI platforms 1. how to arrange space optimization for UEFI FW as an embedded platform 2. how to test and verify the compatibility of a Standard C Library implementation, since “CI“ won’t help at all in this regards 1. how to implement a printf-core that performs narrow and wide mode at once for space optimization 2. how to implement a scanf-core that performs narrow and wide mode at once for space optimization 3. how to implement realloc() sub-allocator on UEFI memory management functions for PEI and DXE Note: If UEFI is going to provide Standard-C-Functions for all drivers, you will have soon e.g. “sprintf()” in all drivers. The amount of code for a proper sprintf() + scanf() + wscanf() + strtok() + wcstok() + malloc() … implementation that is not tailored for embedded FW, will overrun the BIOS FLASH space instantly. I consider commercial BIOS implementations that runs really many drivers (> 100) to start a platform. Currently I implement more feature to CdePkg/Torito C Library: 1. Improve UEFI driver cross development for VisualStudio and EDK2 2. substitution of “DEBUG” traces by CdePkg-traces that allows usage of predefined DEBUG-messages to run in a CdePkg-based driver. Sole purpose is to have DEBUG/RELEASE mode _NOT_ globally, but locally to get trace messages selectively for specific drivers only. (to speed up POST with traces, that consumes a significant amount of time during working hours of a BIOS developer) 1. add SMM support. Shell, DXE, PEI (pre and post memory) is already available for 2 years: https://edk2.groups.io/g/devel/message/51562?p=,,,20,0,0,0::Created,,CdePkg,20,2,0,65191785 1. get ACPICA tools https://acpica.org/ to UEFI Shell I need to implement some non-standard / Microsoft specific C functions to get that running for Andrew Fish. That time links from https://github.com/KilianKegel are under construction and are not necessarily up-to-date. Same for https://github.com/tianocore/edk2-staging/tree/CdePkg that is not used for long … But https://github.com/KilianKegel/CdePkg.git driver set and sample set runs instantly on the latest BIOS of a commercial vendor on a Intel IOTG TGL-H (Tiger Lake H) board using the Microsoft build environment. @Tim: I’d really appreciate if CdePkg could hold additionally Insyde BIOS support. Regrettably I do not have access to Insyde source code. @Maciej I can not see any “wide” functions here. https://github.com/DevSolar/pdclib<https://github.com/DevSolar/pdclib%20from%20WCHAR.H> from WCHAR.H or WCTYPE.H. That is a serious limitation in the UEFI environment. To create UEFI-Shell programs for Personal Computers this link can be used. https://github.com/KilianKegel/Visual-ANSI-C-for-UEFI-Shell#visual-ansi-c-for-uefi-shell Best regards, Kilian From: Andrew Fish via groups.io<mailto:afish=apple.com@groups.io> Sent: Thursday, August 5, 2021 05:35 AM To: edk2-devel-groups-io<mailto:devel@edk2.groups.io>; Leif Lindholm<mailto:leif@nuviainc.com> Cc: Rebecca Cran<mailto:rebecca@nuviainc.com>; tim.lewis@insyde.com<mailto:tim.lewis@insyde.com>; maciej.rabeda@linux.intel.com<mailto:maciej.rabeda@linux.intel.com>; Mike Kinney<mailto:michael.d.kinney@intel.com> Subject: Re: [edk2-devel] "StdLibPkg" branch on edk2-staging I’d guess I’d also ask the why not NewLib? Especially since Red Hat helps out with edk2…. Thanks, Andrew Fish > On Aug 4, 2021, at 4:03 AM, Leif Lindholm <leif@nuviainc.com> wrote: > > Hi Rebecca, > > I think the truth is we're a bit resigned about edk2-libc in general. > My view is it should be either maintained or deprecated (or replaced). > > And maintainership *should* mean at least keeping it up to date with > security fixes. > > I personally have no enthusiasm for the topic, but if there existed: > - An up-to-date codebase. > - A plan for keeping the coodbase up-to-date (as opposed to a plan to > keep the codebase up-to-date). > - At least a couple of maintainers. > I would have no objection to that existing under the TianoCore > umbrella. > > Best Regards, > > Leif > > On Wed, Jul 28, 2021 at 16:44:02 -0600, Rebecca Cran wrote: >> CC'ing the Tianocore stewards. >> >> >> I've had problems getting a recent patch committed just to make edk2-libc >> work against current edk2 master. >> >> Tianocore stewards: do we need new or additional maintainers for edk2-libc, >> or is there a plan to deprecate it? >> >> >> The current maintainers are listed as: >> >> StdLib, StdLibPrivateInternalFiles >> W: https://github.com/tianocore/tianocore.github.io/wiki/StdLib >> M: Daryl McDaniel <edk2-lists@mc2research.org> >> M: Jaben Carsey <jaben.carsey@intel.com> >> >> >> -- >> Rebecca Cran >> >> >> On 7/28/21 4:25 PM, tim.lewis@insyde.com wrote: >>> I would point out that there was significant work on libc in the >> past (see https://github.com/andreiw/UefiToolsPkg) but never any >> help to upstream these fixes, including making sure that many Linux >> tools can easily be ported. I myself have used it to port several >> BSD utilities over, but each time there will little nits with the >> existing port and even small patches were returned with "no current >> maintainer" >>> >>> In terms of making other projects use libc, I think the other >>> objection was that it was never optimized for non-shell >>> usage. Other projects (lie >>> https://github.com/tianocore/edk2-staging/tree/CdePkg ) have tried >>> to remedy this, but never with source checked in. But it allows >>> support under PEI, DXE, etc. >>> >>> Tim >>> >>> -----Original Message----- >>> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Rebecca Cran >>> Sent: Wednesday, July 28, 2021 8:34 AM >>> To: devel@edk2.groups.io; maciej.rabeda@linux.intel.com >>> Subject: Re: [edk2-devel] "StdLibPkg" branch on edk2-staging >>> >>> Are you aware of the edk2-libc project at https://github.com/tianocore/edk2-libc ? >>> >>> > > > > > [-- Attachment #2: Type: text/html, Size: 16314 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: <16984DDFBF70DC40.16396@groups.io>]
* Re: [edk2-devel] "StdLibPkg" branch on edk2-staging [not found] ` <16984DDFBF70DC40.16396@groups.io> @ 2021-08-11 13:19 ` Kilian Kegel 2021-11-14 19:51 ` CdePkgBlog 2021-11-14 Kilian Kegel 0 siblings, 1 reply; 20+ messages in thread From: Kilian Kegel @ 2021-08-11 13:19 UTC (permalink / raw) To: devel@edk2.groups.io, Maciej Rabeda Cc: Rebecca Cran, tim.lewis@insyde.com, Mike Kinney, afish@apple.com, Leif Lindholm [-- Attachment #1.1: Type: text/plain, Size: 8065 bytes --] Hi Maciej, I have updated and fixed build errors in branch CdePkg (https://github.com/tianocore/edk2-staging.git). Also a POST trace is recorded on my MinnowBoard and stored here: https://raw.githubusercontent.com/tianocore/edk2-staging/CdePkg/UEFIBinaries/RELEASE.log All implemented Standard-C-functions from CdePkg/Torito C Library demonstrates its basic behavior. There are also a lot of WCHAR.H- and WCTYPE.H-functions. For the wide-functions I just perform the characters 0..0x1FF instead of all 65536 different wchar_t characters due to runtime regards… Regrettably the MinnowBoard is deprecated https://www.silicom-usa.com/pr/eol/minnowboard-turbot<https://www.silicom-usa.com/pr/eol/minnowboard-turbot/> but the CdePkg also runs in the EMULATOR: https://github.com/tianocore/edk2-staging/tree/CdePkg#howto Best Regards, Kilian From: Kilian Kegel<mailto:kilian_kegel@outlook.com> Sent: Thursday, August 5, 2021 06:14 AM To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; afish@apple.com<mailto:afish@apple.com>; Leif Lindholm<mailto:leif@nuviainc.com> Cc: Rebecca Cran<mailto:rebecca@nuviainc.com>; tim.lewis@insyde.com<mailto:tim.lewis@insyde.com>; maciej.rabeda@linux.intel.com<mailto:maciej.rabeda@linux.intel.com>; Mike Kinney<mailto:michael.d.kinney@intel.com> Subject: Re: [edk2-devel] "StdLibPkg" branch on edk2-staging Hi all, I plan to come back with the https://github.com/tianocore/edk2-staging/tree/CdePkg end of this year and to unroll the source code of fundamental parts of my C Library and discuss that along the 30. anniversary of “The C Book” https://publications.gbdirect.co.uk/c_book/chapter9 Additionally I will discuss the details you need to know: 1. about the differences C90/C95/C99 in language and library 2. how to get HOSTED ENVIRONMENT for UEFI POST drivers 3. how to get Intel/AMD TimeStampCounter based precise time calibration - platform, processor and chipset independent for x86 UEFI platforms 1. how to arrange space optimization for UEFI FW as an embedded platform 2. how to test and verify the compatibility of a Standard C Library implementation, since “CI“ won’t help at all in this regards 1. how to implement a printf-core that performs narrow and wide mode at once for space optimization 2. how to implement a scanf-core that performs narrow and wide mode at once for space optimization 3. how to implement realloc() sub-allocator on UEFI memory management functions for PEI and DXE Note: If UEFI is going to provide Standard-C-Functions for all drivers, you will have soon e.g. “sprintf()” in all drivers. The amount of code for a proper sprintf() + scanf() + wscanf() + strtok() + wcstok() + malloc() … implementation that is not tailored for embedded FW, will overrun the BIOS FLASH space instantly. I consider commercial BIOS implementations that runs really many drivers (> 100) to start a platform. Currently I implement more feature to CdePkg/Torito C Library: 1. Improve UEFI driver cross development for VisualStudio and EDK2 2. substitution of “DEBUG” traces by CdePkg-traces that allows usage of predefined DEBUG-messages to run in a CdePkg-based driver. Sole purpose is to have DEBUG/RELEASE mode _NOT_ globally, but locally to get trace messages selectively for specific drivers only. (to speed up POST with traces, that consumes a significant amount of time during working hours of a BIOS developer) 1. add SMM support. Shell, DXE, PEI (pre and post memory) is already available for 2 years: https://edk2.groups.io/g/devel/message/51562?p=,,,20,0,0,0::Created,,CdePkg,20,2,0,65191785 1. get ACPICA tools https://acpica.org/ to UEFI Shell I need to implement some non-standard / Microsoft specific C functions to get that running for Andrew Fish. That time links from https://github.com/KilianKegel are under construction and are not necessarily up-to-date. Same for https://github.com/tianocore/edk2-staging/tree/CdePkg that is not used for long … But https://github.com/KilianKegel/CdePkg.git driver set and sample set runs instantly on the latest BIOS of a commercial vendor on a Intel IOTG TGL-H (Tiger Lake H) board using the Microsoft build environment. @Tim: I’d really appreciate if CdePkg could hold additionally Insyde BIOS support. Regrettably I do not have access to Insyde source code. @Maciej I can not see any “wide” functions here. https://github.com/DevSolar/pdclib<https://github.com/DevSolar/pdclib%20from%20WCHAR.H> from WCHAR.H or WCTYPE.H. That is a serious limitation in the UEFI environment. To create UEFI-Shell programs for Personal Computers this link can be used. https://github.com/KilianKegel/Visual-ANSI-C-for-UEFI-Shell#visual-ansi-c-for-uefi-shell Best regards, Kilian From: Andrew Fish via groups.io<mailto:afish=apple.com@groups.io> Sent: Thursday, August 5, 2021 05:35 AM To: edk2-devel-groups-io<mailto:devel@edk2.groups.io>; Leif Lindholm<mailto:leif@nuviainc.com> Cc: Rebecca Cran<mailto:rebecca@nuviainc.com>; tim.lewis@insyde.com<mailto:tim.lewis@insyde.com>; maciej.rabeda@linux.intel.com<mailto:maciej.rabeda@linux.intel.com>; Mike Kinney<mailto:michael.d.kinney@intel.com> Subject: Re: [edk2-devel] "StdLibPkg" branch on edk2-staging I’d guess I’d also ask the why not NewLib? Especially since Red Hat helps out with edk2…. Thanks, Andrew Fish > On Aug 4, 2021, at 4:03 AM, Leif Lindholm <leif@nuviainc.com> wrote: > > Hi Rebecca, > > I think the truth is we're a bit resigned about edk2-libc in general. > My view is it should be either maintained or deprecated (or replaced). > > And maintainership *should* mean at least keeping it up to date with > security fixes. > > I personally have no enthusiasm for the topic, but if there existed: > - An up-to-date codebase. > - A plan for keeping the coodbase up-to-date (as opposed to a plan to > keep the codebase up-to-date). > - At least a couple of maintainers. > I would have no objection to that existing under the TianoCore > umbrella. > > Best Regards, > > Leif > > On Wed, Jul 28, 2021 at 16:44:02 -0600, Rebecca Cran wrote: >> CC'ing the Tianocore stewards. >> >> >> I've had problems getting a recent patch committed just to make edk2-libc >> work against current edk2 master. >> >> Tianocore stewards: do we need new or additional maintainers for edk2-libc, >> or is there a plan to deprecate it? >> >> >> The current maintainers are listed as: >> >> StdLib, StdLibPrivateInternalFiles >> W: https://github.com/tianocore/tianocore.github.io/wiki/StdLib >> M: Daryl McDaniel <edk2-lists@mc2research.org> >> M: Jaben Carsey <jaben.carsey@intel.com> >> >> >> -- >> Rebecca Cran >> >> >> On 7/28/21 4:25 PM, tim.lewis@insyde.com wrote: >>> I would point out that there was significant work on libc in the >> past (see https://github.com/andreiw/UefiToolsPkg) but never any >> help to upstream these fixes, including making sure that many Linux >> tools can easily be ported. I myself have used it to port several >> BSD utilities over, but each time there will little nits with the >> existing port and even small patches were returned with "no current >> maintainer" >>> >>> In terms of making other projects use libc, I think the other >>> objection was that it was never optimized for non-shell >>> usage. Other projects (lie >>> https://github.com/tianocore/edk2-staging/tree/CdePkg ) have tried >>> to remedy this, but never with source checked in. But it allows >>> support under PEI, DXE, etc. >>> >>> Tim >>> >>> -----Original Message----- >>> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Rebecca Cran >>> Sent: Wednesday, July 28, 2021 8:34 AM >>> To: devel@edk2.groups.io; maciej.rabeda@linux.intel.com >>> Subject: Re: [edk2-devel] "StdLibPkg" branch on edk2-staging >>> >>> Are you aware of the edk2-libc project at https://github.com/tianocore/edk2-libc ? >>> >>> > > > > > [-- Attachment #1.2: Type: text/html, Size: 19181 bytes --] [-- Attachment #2: 91D6A18A388446A38691886DAE994FEF.png --] [-- Type: image/png, Size: 132 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* CdePkgBlog 2021-11-14 2021-08-11 13:19 ` Kilian Kegel @ 2021-11-14 19:51 ` Kilian Kegel 2021-11-22 16:31 ` [edk2-devel] " Maciej Rabeda 0 siblings, 1 reply; 20+ messages in thread From: Kilian Kegel @ 2021-11-14 19:51 UTC (permalink / raw) To: devel@edk2.groups.io Cc: Rebecca Cran, tim.lewis@insyde.com, Mike Kinney, afish@apple.com, Leif Lindholm, Maciej Rabeda, Richardson, Brian [-- Attachment #1: Type: text/plain, Size: 761 bytes --] Hi All, as announced last summer, I’d like to start a comprehensive tutorial on how to use Standard C / ANSI C in the UEFI environment and how to design and implement such a library for Shell and POST usage. Since most parts of that comprehensive work are already done, I will report, demonstrate and discuss implementation principles and details on edk2.groups.io as a kind of “blog” on a biweekly basis. Please checkout my first CdePkgBlog https://github.com/tianocore/edk2-staging/tree/CdePkg/blogs/2021-11-14#cdepkgblog-2021-11-14 and enjoy the breathtaking build speed if compiler and linker are used exclusively to create MY LEGACY TOOLBOX, a handy set of one-trick-ponies that I have been using for about 25 years. Have fun, Kilian [-- Attachment #2: Type: text/html, Size: 5288 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [edk2-devel] CdePkgBlog 2021-11-14 2021-11-14 19:51 ` CdePkgBlog 2021-11-14 Kilian Kegel @ 2021-11-22 16:31 ` Maciej Rabeda 2021-11-24 20:21 ` Kilian Kegel 0 siblings, 1 reply; 20+ messages in thread From: Maciej Rabeda @ 2021-11-22 16:31 UTC (permalink / raw) To: devel, KILIAN_KEGEL Cc: Rebecca Cran, tim.lewis@insyde.com, Mike Kinney, afish@apple.com, Leif Lindholm, Richardson, Brian [-- Attachment #1: Type: text/plain, Size: 1756 bytes --] Hi Kilian, From my point of view, the main problem with adoption of CdePkg to EDK2 is that it relies on Torito C library. 1. Torito C library License (https://github.com/KilianKegel/toro-C-Library/blob/master/LICENSE.md) only allows for creating UEFI Shell applications. * What about applications that do not rely on ShellPkg (example: SysPrep application that might want to use Redfish, which depends on C standard library)? * What about drivers/libraries that rely on C standard library? * How is that compatible with EDK2 BSD-2-Clause-Patent? 2. Torito C is pre-compiled. * How can I verify what was actually implemented inside? Industry would have to trust your tests, perform own set of tests or/and disassemble it (doable, but unacceptable effort-wise). Unless those problems are solved, I simply cannot use it. Thanks, Maciej On 14-Nov-21 20:51, Kilian Kegel wrote: > > Hi All, > > as announced last summer, I’d like to start a comprehensive tutorial on > > how to use Standard C / ANSI C in the UEFI environment and how to > design and implement > > such a library for Shell and POST usage. > > Since most parts of that comprehensive work are already done, > > I will report, demonstrate and discuss implementation principles and > details on edk2.groups.io > > as a kind of “blog” on a biweekly basis. > > Please checkout my first CdePkgBlog > https://github.com/tianocore/edk2-staging/tree/CdePkg/blogs/2021-11-14#cdepkgblog-2021-11-14 > > and enjoy the breathtaking build speed if compiler and linker are used > exclusively to create MY LEGACY TOOLBOX, > > a handy set of one-trick-ponies that I have been using for about 25 years. > > Have fun, > > Kilian > > [-- Attachment #2: Type: text/html, Size: 3947 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [edk2-devel] CdePkgBlog 2021-11-14 2021-11-22 16:31 ` [edk2-devel] " Maciej Rabeda @ 2021-11-24 20:21 ` Kilian Kegel 2021-11-24 22:50 ` Pedro Falcato ` (2 more replies) 0 siblings, 3 replies; 20+ messages in thread From: Kilian Kegel @ 2021-11-24 20:21 UTC (permalink / raw) To: Rabeda, Maciej, devel@edk2.groups.io Cc: Rebecca Cran, tim.lewis@insyde.com, Mike Kinney, afish@apple.com, Leif Lindholm [-- Attachment #1.1: Type: text/plain, Size: 4890 bytes --] Hi Maciej, CdePkg is already integrated into EDK2 and satisfies all your needs for pre-/post-memory PEI, DXE, (SMM in latest releases only), BDS and UEFI Shell too. I have introduced CdePkg for POST usage 2 years ago without any interest of the “Tianocore Community”: https://edk2.groups.io/g/devel/message/51562?p=,,,20,0,0,0::Created,,CdePkg,20,2,0,65191785 1. Klick on the email link above 2. Klick on the first link in that email, that goes to the edk2-staging\cdepkg folder [cid:image001.png@01D7E178.E5854300] 1. read the HOWTO: https://github.com/tianocore/edk2-staging/blob/CdePkg/README.md#howto and go for emulation – that works perfectly. 1. I simply can’t do more for you, than to urgently encourage to try it out yourself, test it, see what it can do for you This time toro C Library (that is absolutely the same as the library part of the latest CdePkg https://github.com/KilianKegel/CdePkg/blob/master/CdeLib/CdeLib.mak#L15) for UEFI Shell will be discussed first, since “Tianocore Community” is now aware of serious problems of edk2libc and probably ready to examine my solution, that lacks all of those issues. You, Maciej, can support CdePkg/ toro C Library by 1. testing CdePkg 2. giving feedback to the community 3. updating CdePkg to latest AAEON WhiskeyLake platform (that is on my Desk for months but I simply don’t have time to get it running…) (MinnowBoard is deprecated now) The license issue can not be discussed before there is any serious interest in CdePkg and toro C Library. But if you are seeking for a free solution, that * requires unknown additional working hours * requires a couple of high motivated maintainers, specialized in Standard C * countless patches will spam your inbox folder for years * additionally with unpredictable result please use edk2libc, PDCLIB or adjust NewLib for your needs. >Unless those problems are solved, I simply cannot use it. Right, but you are invited to take a test drive! In the EDK2 Emulator. Debugging with the best Debugtool ever seen… Try to get SysPrep and Redfish running in the Emulator. Really, just do it! > How can I verify what was actually implemented inside? I will publish source code of toro C Library beginning 2022 and discuss the design details along those files. But, did you check glibc’s fopen-source before using it? Have you ever seen Microsoft/Borland/Symantec/ARM/IBM/Dinkumware/Greenhill/IAR … C Libraries source code? Thanks, Kilian Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows From: Rabeda, Maciej<mailto:maciej.rabeda@linux.intel.com> Sent: Monday, November 22, 2021 05:31 PM To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; KILIAN_KEGEL@OUTLOOK.COM<mailto:KILIAN_KEGEL@OUTLOOK.COM> Cc: Rebecca Cran<mailto:rebecca@nuviainc.com>; tim.lewis@insyde.com<mailto:tim.lewis@insyde.com>; Mike Kinney<mailto:michael.d.kinney@intel.com>; afish@apple.com<mailto:afish@apple.com>; Leif Lindholm<mailto:leif@nuviainc.com>; Richardson, Brian<mailto:brian.richardson@intel.com> Subject: Re: [edk2-devel] CdePkgBlog 2021-11-14 Hi Kilian, >From my point of view, the main problem with adoption of CdePkg to EDK2 is that it relies on Torito C library. 1. Torito C library License (https://github.com/KilianKegel/toro-C-Library/blob/master/LICENSE.md) only allows for creating UEFI Shell applications. * What about applications that do not rely on ShellPkg (example: SysPrep application that might want to use Redfish, which depends on C standard library)? * What about drivers/libraries that rely on C standard library? * How is that compatible with EDK2 BSD-2-Clause-Patent? 2. Torito C is pre-compiled. * How can I verify what was actually implemented inside? Industry would have to trust your tests, perform own set of tests or/and disassemble it (doable, but unacceptable effort-wise). Unless those problems are solved, I simply cannot use it. Thanks, Maciej On 14-Nov-21 20:51, Kilian Kegel wrote: Hi All, as announced last summer, I’d like to start a comprehensive tutorial on how to use Standard C / ANSI C in the UEFI environment and how to design and implement such a library for Shell and POST usage. Since most parts of that comprehensive work are already done, I will report, demonstrate and discuss implementation principles and details on edk2.groups.io as a kind of “blog” on a biweekly basis. Please checkout my first CdePkgBlog https://github.com/tianocore/edk2-staging/tree/CdePkg/blogs/2021-11-14#cdepkgblog-2021-11-14 and enjoy the breathtaking build speed if compiler and linker are used exclusively to create MY LEGACY TOOLBOX, a handy set of one-trick-ponies that I have been using for about 25 years. Have fun, Kilian [-- Attachment #1.2: Type: text/html, Size: 17677 bytes --] [-- Attachment #2: 3F1FECE7AF8044E584BF5D0CF3028E97.png --] [-- Type: image/png, Size: 13937 bytes --] [-- Attachment #3: E06AA5DE32A14AE2A4736488BC5EB760.png --] [-- Type: image/png, Size: 132 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [edk2-devel] CdePkgBlog 2021-11-14 2021-11-24 20:21 ` Kilian Kegel @ 2021-11-24 22:50 ` Pedro Falcato 2021-11-28 20:35 ` CdePkgBlog 2021-11-18 Kilian Kegel [not found] ` <16BBD01DEB5EF921.4083@groups.io> 2021-11-30 10:09 ` [edk2-devel] CdePkgBlog 2021-11-14 Maciej Rabeda [not found] ` <16BC4B25BB307B73.14741@groups.io> 2 siblings, 2 replies; 20+ messages in thread From: Pedro Falcato @ 2021-11-24 22:50 UTC (permalink / raw) To: edk2-devel-groups-io, KILIAN_KEGEL Cc: Rabeda, Maciej, Rebecca Cran, tim.lewis@insyde.com, Mike Kinney, afish@apple.com, Leif Lindholm [-- Attachment #1.1: Type: text/plain, Size: 5849 bytes --] Hi Kilian, I agree with Maciej. There should be a big emphasis on getting an *open-source* libc available in EDK2, and not relying on a proprietary, opaque binary blob. In my opinion EDK2 should pivot to using a high-quality, license-compatible libc such as Newlib, musl, etc. If you believe your Toro C library is the best tool for the job, you should open-source it (with a compatible license) as soon as possible to let the community decide :) Best regards, Pedro On Wed, Nov 24, 2021 at 8:21 PM Kilian Kegel <KILIAN_KEGEL@outlook.com> wrote: > Hi Maciej, > > > > *CdePkg* is already integrated into EDK2 and satisfies all your needs for > pre-/post-memory > > PEI, DXE, (SMM in latest releases only), BDS and UEFI Shell too. > > > > I have introduced *CdePkg* for POST usage 2 years ago without any > interest of the “Tianocore Community”: > > > https://edk2.groups.io/g/devel/message/51562?p=,,,20,0,0,0::Created,,CdePkg,20,2,0,65191785 > > > > 1. Klick on the email link above > 2. Klick on the first link in that email, that goes to the > edk2-staging\cdepkg folder > > > > > 1. read the HOWTO: > https://github.com/tianocore/edk2-staging/blob/CdePkg/README.md#howto > > *and go for emulation – that works perfectly.* > > 1. I simply can’t do more for you, than to urgently encourage to try > it out yourself, test it, see what it can do for you > > > > This time *toro C Library* (that is absolutely the same as the library > part of the latest > > CdePkg > https://github.com/KilianKegel/CdePkg/blob/master/CdeLib/CdeLib.mak#L15) > > for UEFI Shell will be discussed first, since “Tianocore Community” is now > aware of serious problems of edk2libc > > and probably ready to examine my solution, that lacks all of those issues. > > > > You, Maciej, can support *CdePkg/ toro C Library* by > > > > 1. testing *CdePkg* > 2. giving feedback to the community > 3. updating *CdePkg* to latest AAEON WhiskeyLake platform (that is on > my Desk for months but I simply don’t have time to get it running…) > > (MinnowBoard is deprecated now) > > > > The license issue *can not* be discussed *before* there is any serious > interest in *CdePkg* and *toro C Library*. > > > > But if you are seeking for a free solution, that > > - requires unknown additional working hours > - requires a couple of high motivated maintainers, specialized in > Standard C > - countless patches will spam your inbox folder for years > - additionally with unpredictable result > > please use edk2libc, PDCLIB or adjust NewLib for your needs. > > > > >Unless those problems are solved, I simply cannot use it. > > Right, but you are invited to take a test drive! > > In the EDK2 Emulator. Debugging with the best Debugtool ever seen… > > Try to get SysPrep and Redfish running in the Emulator. > > Really, just do it! > > > > > How can I verify what was actually implemented inside? > > I will publish source code of *toro C Library* beginning 2022 and discuss > the design details along those files. > > But, did you check glibc’s fopen-source before using it? > > Have you ever seen > Microsoft/Borland/Symantec/ARM/IBM/Dinkumware/Greenhill/IAR … C Libraries > source code? > > > > Thanks, > > Kilian > > > > > > Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for > Windows > > > > *From: *Rabeda, Maciej <maciej.rabeda@linux.intel.com> > *Sent: *Monday, November 22, 2021 05:31 PM > *To: *devel@edk2.groups.io; KILIAN_KEGEL@OUTLOOK.COM > *Cc: *Rebecca Cran <rebecca@nuviainc.com>; tim.lewis@insyde.com; Mike > Kinney <michael.d.kinney@intel.com>; afish@apple.com; Leif Lindholm > <leif@nuviainc.com>; Richardson, Brian <brian.richardson@intel.com> > *Subject: *Re: [edk2-devel] CdePkgBlog 2021-11-14 > > > > Hi Kilian, > > From my point of view, the main problem with adoption of CdePkg to EDK2 is > that it relies on Torito C library. > > 1. Torito C library License ( > https://github.com/KilianKegel/toro-C-Library/blob/master/LICENSE.md) > only allows for creating UEFI Shell applications. > - What about applications that do not rely on ShellPkg (example: > SysPrep application that might want to use Redfish, which depends on C > standard library)? > - What about drivers/libraries that rely on C standard library? > - How is that compatible with EDK2 BSD-2-Clause-Patent? > 2. Torito C is pre-compiled. > - How can I verify what was actually implemented inside? Industry > would have to trust your tests, perform own set of tests or/and disassemble > it (doable, but unacceptable effort-wise). > > Unless those problems are solved, I simply cannot use it. > > Thanks, > Maciej > > On 14-Nov-21 20:51, Kilian Kegel wrote: > > Hi All, > > > > as announced last summer, I’d like to start a comprehensive tutorial on > > how to use Standard C / ANSI C in the UEFI environment and how to design > and implement > > such a library for Shell and POST usage. > > > > Since most parts of that comprehensive work are already done, > > I will report, demonstrate and discuss implementation principles and > details on edk2.groups.io > > as a kind of “blog” on a biweekly basis. > > > > Please checkout my first CdePkgBlog > https://github.com/tianocore/edk2-staging/tree/CdePkg/blogs/2021-11-14#cdepkgblog-2021-11-14 > > and enjoy the breathtaking build speed if compiler and linker are used > exclusively to create MY LEGACY TOOLBOX, > > a handy set of one-trick-ponies that I have been using for about 25 years. > > > > Have fun, > > Kilian > > > > > > > > > -- Pedro Falcato [-- Attachment #1.2: Type: text/html, Size: 12195 bytes --] [-- Attachment #2: 3F1FECE7AF8044E584BF5D0CF3028E97.png --] [-- Type: image/png, Size: 13937 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* CdePkgBlog 2021-11-18 2021-11-24 22:50 ` Pedro Falcato @ 2021-11-28 20:35 ` Kilian Kegel [not found] ` <16BBD01DEB5EF921.4083@groups.io> 1 sibling, 0 replies; 20+ messages in thread From: Kilian Kegel @ 2021-11-28 20:35 UTC (permalink / raw) To: edk2-devel-groups-io Cc: Rabeda, Maciej, Rebecca Cran, tim.lewis@insyde.com, Mike Kinney, afish@apple.com, Leif Lindholm [-- Attachment #1: Type: text/plain, Size: 1048 bytes --] Hi All, as announced in my last CdePkgBlog I’d like to demonstrate how to design, create and build missing tools for the UEFI Shell, that are still known today from the Windows command line: FIND and MORE. Along those tools I: 1. describe how to deal with native UEFI ASCII and UTF16 files. 2. publish toro C Library stdin file/console handling as a part of a reference implementation 3. publish toro C Library command-line-to-argc/argv translation as part of a reference implementation 4. publish toro C Library concept of how to pass the OS-interface SystemTable to main() in a Standard-C-compatible sideway Once again the tools were translated to .EFI executables using the Microsoft VisualStudio 2022 command line without the EDK2 build process. Please checkout my second CdePkgBlog https://github.com/tianocore/edk2-staging/tree/CdePkg/blogs/2021-11-28#cdepkgblog-2021-11-28 and enjoy the breathtaking build speed if compiler and linker are used exclusively to create FIND.EFI and MORE.EFI Have fun, Kilian [-- Attachment #2: Type: text/html, Size: 7780 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: <16BBD01DEB5EF921.4083@groups.io>]
* CdePkgBlog 2021-12-12 [not found] ` <16BBD01DEB5EF921.4083@groups.io> @ 2021-12-12 20:02 ` Kilian Kegel 2021-12-19 20:51 ` CdePkgBlog 2021-12-19 Kilian Kegel 0 siblings, 1 reply; 20+ messages in thread From: Kilian Kegel @ 2021-12-12 20:02 UTC (permalink / raw) To: devel@edk2.groups.io Cc: Rabeda, Maciej, Rebecca Cran, tim.lewis@insyde.com, Mike Kinney, afish@apple.com, Leif Lindholm [-- Attachment #1.1.1: Type: text/plain, Size: 1334 bytes --] Hi Maciej, hi all, regrettably the announced CdePkgBlog for today is still under process and will be published next Sunday. And also the schedule for the other CdePkgBlogs has changed: [cid:image001.png@01D7EF91.99009E90] Here are some intermediate results: 1. Successfully updated https://github.com/tianocore/edk2-staging/tree/CdePkg to edk2-stable202111 with latest Redfish-support 2. Redfish runs in Emulator-mode 3. “Just add your C standard library to the INF and – poof – everything works”: YES, of course, changes below is all you need to get all of https://github.com/KilianKegel/toro-C-Library/blob/master/implemented.md#validation-status [cid:image002.png@01D7EF92.57068DF0] [cid:image003.png@01D7EF92.6F8DD9F0] 1. Command line parameters works for all Redfish-drivers in the Emulator 2. Successfully added all samples for all functions from <wchar.h> and <wctype.h> from https://github.com/tianocore/edk2-staging/blob/CdePkg/CdeValidationPkg/WCHAR_H/wcharhfunctions/main.c and https://github.com/tianocore/edk2-staging/blob/CdePkg/CdeValidationPkg/WCTYPE_H/wctypehfunctions/main.c to RestJsonStructureDxe-Component 1. Just need some days to finish a suitable review of the RedfishCrtLib design and implementation Have fun, Kilian [-- Attachment #1.1.2: Type: text/html, Size: 6794 bytes --] [-- Attachment #1.2: 08738CAF2A454B69BDE95E85A61AA01B.png --] [-- Type: image/png, Size: 11693 bytes --] [-- Attachment #1.3: 0FCAD214237640F4989EDEAF07E35AF9.png --] [-- Type: image/png, Size: 103864 bytes --] [-- Attachment #1.4: 41780803977C48A18277D7C01CB31809.png --] [-- Type: image/png, Size: 114922 bytes --] [-- Attachment #2: RedfishCredentialDxe.inf.diff.png --] [-- Type: image/png, Size: 103864 bytes --] [-- Attachment #3: RedfishCredentialDxe.c.diff.png --] [-- Type: image/png, Size: 114922 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* CdePkgBlog 2021-12-19 2021-12-12 20:02 ` CdePkgBlog 2021-12-12 Kilian Kegel @ 2021-12-19 20:51 ` Kilian Kegel 2022-01-16 20:01 ` CdePkgBlog 2022-01-16 -- Introduction of the ACPICA port to UEFI Kilian Kegel 0 siblings, 1 reply; 20+ messages in thread From: Kilian Kegel @ 2021-12-19 20:51 UTC (permalink / raw) To: devel@edk2.groups.io Cc: Rabeda, Maciej, Rebecca Cran, tim.lewis@insyde.com, Mike Kinney, afish@apple.com, Leif Lindholm, Michael Kubacki, abner.chang@hpe.com [-- Attachment #1.1: Type: text/plain, Size: 2688 bytes --] Hi Maciej, hi all, I didn’t get any feedback from you, what exactly you would like CdePkg to do for Redfish. So I chose to demonstrate all functions from wchar.h and wctype.h that are implemented in toro C Library, but not available in your, Maciej’s, preferred PDCLIB. I provided also the source code of these functions for review. Additionally I’d like to inform you, that my Standard C Library header files for VS2022 for EDK2 usage are available in a EDK2 compatible license: https://github.com/KilianKegel/CdePkg/tree/master/Include/VS2022 If you want to build the samples, please get the entire CdePkg from edk2-staging that also includes the blog, https://github.com/tianocore/edk2-staging.git If you just want to read the new blog: https://github.com/tianocore/edk2-staging/tree/CdePkg/blogs/2021-12-19#cdepkgblog-2021-12-19 Have fun, Kilian From: Kilian Kegel<mailto:kilian_kegel@outlook.com> Sent: Sunday, December 12, 2021 09:02 PM To: devel@edk2.groups.io<mailto:devel@edk2.groups.io> Cc: Rabeda, Maciej<mailto:maciej.rabeda@linux.intel.com>; Rebecca Cran<mailto:rebecca@nuviainc.com>; tim.lewis@insyde.com<mailto:tim.lewis@insyde.com>; Mike Kinney<mailto:michael.d.kinney@intel.com>; afish@apple.com<mailto:afish@apple.com>; Leif Lindholm<mailto:leif@nuviainc.com> Subject: CdePkgBlog 2021-12-12 Hi Maciej, hi all, regrettably the announced CdePkgBlog for today is still under process and will be published next Sunday. And also the schedule for the other CdePkgBlogs has changed: [cid:image001.png@01D7F511.8AC27D50] Here are some intermediate results: 1. Successfully updated https://github.com/tianocore/edk2-staging/tree/CdePkg to edk2-stable202111 with latest Redfish-support 2. Redfish runs in Emulator-mode 3. “Just add your C standard library to the INF and – poof – everything works”: YES, of course, changes below is all you need to get all of https://github.com/KilianKegel/toro-C-Library/blob/master/implemented.md#validation-status [cid:image002.png@01D7F511.8AC27D50] [cid:image003.png@01D7F511.8AC27D50] 1. Command line parameters works for all Redfish-drivers in the Emulator 2. Successfully added all samples for all functions from <wchar.h> and <wctype.h> from https://github.com/tianocore/edk2-staging/blob/CdePkg/CdeValidationPkg/WCHAR_H/wcharhfunctions/main.c and https://github.com/tianocore/edk2-staging/blob/CdePkg/CdeValidationPkg/WCTYPE_H/wctypehfunctions/main.c to RestJsonStructureDxe-Component 1. Just need some days to finish a suitable review of the RedfishCrtLib design and implementation Have fun, Kilian [-- Attachment #1.2: Type: text/html, Size: 9824 bytes --] [-- Attachment #2: 090DA288B9684CEE8DEBF340A362365D.png --] [-- Type: image/png, Size: 11693 bytes --] [-- Attachment #3: 7393E956CA344ED599EBF902CAD6E6A6.png --] [-- Type: image/png, Size: 103864 bytes --] [-- Attachment #4: B3C0BA2F84BC46B5A05002236F71CF3C.png --] [-- Type: image/png, Size: 114922 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* CdePkgBlog 2022-01-16 -- Introduction of the ACPICA port to UEFI 2021-12-19 20:51 ` CdePkgBlog 2021-12-19 Kilian Kegel @ 2022-01-16 20:01 ` Kilian Kegel 0 siblings, 0 replies; 20+ messages in thread From: Kilian Kegel @ 2022-01-16 20:01 UTC (permalink / raw) To: devel@edk2.groups.io, Maciej Rabeda Cc: Rabeda, Maciej, Rebecca Cran, tim.lewis@insyde.com, Mike Kinney, afish@apple.com, Leif Lindholm, Michael Kubacki, abner.chang@hpe.com [-- Attachment #1: Type: text/plain, Size: 2094 bytes --] Hi Andrew, hi Jordan, hi Maciej, hi all, this task was suggested by @ajfish and @jljusten at tianocore / tianocore.github.io: https://github.com/tianocore/tianocore.github.io/wiki/Tasks#port-acpi-ca-to-a-shell-application. All in all it could be solved within a really small amount of time, with a small amount of changes and extensions some months ago * build Visual-ACPICA-for-UEFI-Shell: https://www.youtube.com/watch?v=POfSJQXi2aM * run ACPIDUMP.efi and ASLCOMPILER.efi: https://www.youtube.com/watch?v=oA1GA95WrF0 My concept here was to choose the existing Microsoft VisualStudio package and adjust it to run in the UEFI environment, by reimplementing missing Win32-API functions (amount of 8). This could be done using the Microsoft-C-Library compatible toro-C-Library<https://github.com/KilianKegel/toro-C-Library#toro-c-library-formerly-known-as-torito-c-library> Maybe that concept is also useable for porting “openSSH” to UEFI Shell: https://github.com/tianocore/tianocore.github.io/wiki/Tasks#port-openssh-as-a-shell-application @Maciej Rabeda<mailto:maciej.rabeda@linux.intel.com> The toro-C-Library source code is included in the project. You can check what is inside, how it works internally and how I do believe a C-Library for UEFI Shell/SMM/DXE/PEI should be constructed that guarantees compatibility/portability+testability for POST drivers and UEFI/Windows Shell applications by design. The “toro-C-Library” build engine is VisualStudio/msbuild.exe only. It takes 20 Seconds to get it done. The older “torito-C-Library” build engine is EDK2Build. It takes 120 seconds to get it done, for the same result, on the same build machine. If you want to build the samples, please get the entire CdePkg from edk2-staging that also includes the blog, https://github.com/tianocore/edk2-staging/tree/CdePkg If you just want to read the new blog: https://github.com/tianocore/edk2-staging/blob/CdePkg/blogs/2022-01-16/README.md#cdepkgblog-2022-01-16 Enjoy the breathtaking speed and elegance of VisualStudio Have fun, Kilian [-- Attachment #2: Type: text/html, Size: 9491 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [edk2-devel] CdePkgBlog 2021-11-14 2021-11-24 20:21 ` Kilian Kegel 2021-11-24 22:50 ` Pedro Falcato @ 2021-11-30 10:09 ` Maciej Rabeda [not found] ` <16BC4B25BB307B73.14741@groups.io> 2 siblings, 0 replies; 20+ messages in thread From: Maciej Rabeda @ 2021-11-30 10:09 UTC (permalink / raw) To: devel, KILIAN_KEGEL Cc: Rebecca Cran, tim.lewis@insyde.com, Mike Kinney, afish@apple.com, Leif Lindholm [-- Attachment #1: Type: text/plain, Size: 5476 bytes --] Hi Kilian, CdePkg *has not* been integrated into EDK2. It is simply in edk2-staging, and that's a large difference. As for "satisfies all my needs" - it does not for the reasons I have previously outlined. Reiterating: unless Torito C library is not released as source code under an EDK2-compatible license, I cannot use it. Period. Thanks, Maciej On 24-Nov-21 21:21, Kilian Kegel wrote: > > Hi Maciej, > > *CdePkg* is already integrated into EDK2 and satisfies all your needs > for pre-/post-memory > > PEI, DXE, (SMM in latest releases only), BDS and UEFI Shell too. > > I have introduced *CdePkg* for POST usage 2 years ago without any > interest of the “Tianocore Community”: > > https://edk2.groups.io/g/devel/message/51562?p=,,,20,0,0,0::Created,,CdePkg,20,2,0,65191785 > > 1. Klick on the email link above > 2. Klick on the first link in that email, that goes to the > edk2-staging\cdepkg folder > > 3. read the HOWTO: > https://github.com/tianocore/edk2-staging/blob/CdePkg/README.md#howto > > *and go for emulation – that works perfectly.* > > 4. I simply can’t do more for you, than to urgently encourage to try > it out yourself, test it, see what it can do for you > > This time *toro C Library* (that is absolutely the same as the library > part of the latest > > CdePkg > https://github.com/KilianKegel/CdePkg/blob/master/CdeLib/CdeLib.mak#L15) > > for UEFI Shell will be discussed first, since “Tianocore Community” is > now aware of serious problems of edk2libc > > and probably ready to examine my solution,that lacks all of those issues. > > You, Maciej, can support *CdePkg/ toro C Library* by > > 1. testing *CdePkg* > 2. giving feedback to the community > 3. updating *CdePkg* to latest AAEON WhiskeyLake platform (that is on > my Desk for months but I simply don’t have time to get it running…) > > (MinnowBoard is deprecated now) > > The license issue /can not/ be discussed /before/ there is any serious > interest in *CdePkg* and *toro C Library*. > > But if you are seeking for a free solution, that > > * requires unknown additional working hours > * requires a couple of high motivated maintainers, specialized in > Standard C > * countless patches will spam your inbox folder for years > * additionally with unpredictable result > > please use edk2libc, PDCLIB or adjust NewLib for your needs. > > >Unless those problems are solved, I simply cannot use it. > > Right, but you are invited to take a test drive! > > In the EDK2 Emulator. Debugging with the best Debugtool ever seen… > > Try to get SysPrep and Redfish running in the Emulator. > > Really, just do it! > > > How can I verify what was actually implemented inside? > > I will publish source code of *toro C Library* beginning 2022 and > discuss the design details along those files. > > But, did you check glibc’s fopen-source before using it? > > Have you ever seen > Microsoft/Borland/Symantec/ARM/IBM/Dinkumware/Greenhill/IAR … C > Libraries source code? > > Thanks, > > Kilian > > Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for > Windows > > *From: *Rabeda, Maciej <mailto:maciej.rabeda@linux.intel.com> > *Sent: *Monday, November 22, 2021 05:31 PM > *To: *devel@edk2.groups.io; KILIAN_KEGEL@OUTLOOK.COM > *Cc: *Rebecca Cran <mailto:rebecca@nuviainc.com>; > tim.lewis@insyde.com; Mike Kinney <mailto:michael.d.kinney@intel.com>; > afish@apple.com; Leif Lindholm <mailto:leif@nuviainc.com>; Richardson, > Brian <mailto:brian.richardson@intel.com> > *Subject: *Re: [edk2-devel] CdePkgBlog 2021-11-14 > > Hi Kilian, > > From my point of view, the main problem with adoption of CdePkg to > EDK2 is that it relies on Torito C library. > > 1. Torito C library License > (https://github.com/KilianKegel/toro-C-Library/blob/master/LICENSE.md) > only allows for creating UEFI Shell applications. > * What about applications that do not rely on ShellPkg (example: > SysPrep application that might want to use Redfish, which > depends on C standard library)? > * What about drivers/libraries that rely on C standard library? > * How is that compatible with EDK2 BSD-2-Clause-Patent? > 2. Torito C is pre-compiled. > * How can I verify what was actually implemented inside? > Industry would have to trust your tests, perform own set of > tests or/and disassemble it (doable, but unacceptable > effort-wise). > > Unless those problems are solved, I simply cannot use it. > > Thanks, > Maciej > > On 14-Nov-21 20:51, Kilian Kegel wrote: > > Hi All, > > as announced last summer, I’d like to start a comprehensive > tutorial on > > how to use Standard C / ANSI C in the UEFI environment and how to > design and implement > > such a library for Shell and POST usage. > > Since most parts of that comprehensive work are already done, > > I will report, demonstrate and discuss implementation principles > and details on edk2.groups.io > > as a kind of “blog” on a biweekly basis. > > Please checkout my first CdePkgBlog > https://github.com/tianocore/edk2-staging/tree/CdePkg/blogs/2021-11-14#cdepkgblog-2021-11-14 > > and enjoy the breathtaking build speed if compiler and linker are > used exclusively to create MY LEGACY TOOLBOX, > > a handy set of one-trick-ponies that I have been using for about > 25 years. > > Have fun, > > Kilian > > [-- Attachment #2.1: Type: text/html, Size: 15842 bytes --] [-- Attachment #2.2: 3F1FECE7AF8044E584BF5D0CF3028E97.png --] [-- Type: image/png, Size: 13937 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: <16BC4B25BB307B73.14741@groups.io>]
* Re: [edk2-devel] CdePkgBlog 2021-11-14 [not found] ` <16BC4B25BB307B73.14741@groups.io> @ 2021-11-30 20:15 ` Maciej Rabeda 0 siblings, 0 replies; 20+ messages in thread From: Maciej Rabeda @ 2021-11-30 20:15 UTC (permalink / raw) To: devel, KILIAN_KEGEL Cc: Rebecca Cran, tim.lewis@insyde.com, Mike Kinney, afish@apple.com, Leif Lindholm [-- Attachment #1: Type: text/plain, Size: 5725 bytes --] Statement correction On 30-Nov-21 11:09, Maciej Rabeda wrote: > Hi Kilian, > > CdePkg *has not* been integrated into EDK2. It is simply in > edk2-staging, and that's a large difference. > As for "satisfies all my needs" - it does not for the reasons I have > previously outlined. > > Reiterating: unless Torito C library *is released* as source code > under an EDK2-compatible license, I cannot use it. Period. > > Thanks, > Maciej > > On 24-Nov-21 21:21, Kilian Kegel wrote: >> >> Hi Maciej, >> >> *CdePkg* is already integrated into EDK2 and satisfies all your needs >> for pre-/post-memory >> >> PEI, DXE, (SMM in latest releases only), BDS and UEFI Shell too. >> >> I have introduced *CdePkg* for POST usage 2 years ago without any >> interest of the “Tianocore Community”: >> >> https://edk2.groups.io/g/devel/message/51562?p=,,,20,0,0,0::Created,,CdePkg,20,2,0,65191785 >> >> 1. Klick on the email link above >> 2. Klick on the first link in that email, that goes to the >> edk2-staging\cdepkg folder >> >> 3. read the HOWTO: >> https://github.com/tianocore/edk2-staging/blob/CdePkg/README.md#howto >> >> *and go for emulation – that works perfectly.* >> >> 4. I simply can’t do more for you, than to urgently encourage to try >> it out yourself, test it, see what it can do for you >> >> This time *toro C Library* (that is absolutely the same as the >> library part of the latest >> >> CdePkg >> https://github.com/KilianKegel/CdePkg/blob/master/CdeLib/CdeLib.mak#L15) >> >> for UEFI Shell will be discussed first, since “Tianocore Community” >> is now aware of serious problems of edk2libc >> >> and probably ready to examine my solution,that lacks all of those issues. >> >> You, Maciej, can support *CdePkg/ toro C Library* by >> >> 1. testing *CdePkg* >> 2. giving feedback to the community >> 3. updating *CdePkg* to latest AAEON WhiskeyLake platform (that is >> on my Desk for months but I simply don’t have time to get it >> running…) >> >> (MinnowBoard is deprecated now) >> >> The license issue /can not/ be discussed /before/ there is any >> serious interest in *CdePkg* and *toro C Library*. >> >> But if you are seeking for a free solution, that >> >> * requires unknown additional working hours >> * requires a couple of high motivated maintainers, specialized in >> Standard C >> * countless patches will spam your inbox folder for years >> * additionally with unpredictable result >> >> please use edk2libc, PDCLIB or adjust NewLib for your needs. >> >> >Unless those problems are solved, I simply cannot use it. >> >> Right, but you are invited to take a test drive! >> >> In the EDK2 Emulator. Debugging with the best Debugtool ever seen… >> >> Try to get SysPrep and Redfish running in the Emulator. >> >> Really, just do it! >> >> > How can I verify what was actually implemented inside? >> >> I will publish source code of *toro C Library* beginning 2022 and >> discuss the design details along those files. >> >> But, did you check glibc’s fopen-source before using it? >> >> Have you ever seen >> Microsoft/Borland/Symantec/ARM/IBM/Dinkumware/Greenhill/IAR … C >> Libraries source code? >> >> Thanks, >> >> Kilian >> >> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for >> Windows >> >> *From: *Rabeda, Maciej <mailto:maciej.rabeda@linux.intel.com> >> *Sent: *Monday, November 22, 2021 05:31 PM >> *To: *devel@edk2.groups.io; KILIAN_KEGEL@OUTLOOK.COM >> *Cc: *Rebecca Cran <mailto:rebecca@nuviainc.com>; >> tim.lewis@insyde.com; Mike Kinney >> <mailto:michael.d.kinney@intel.com>; afish@apple.com; Leif Lindholm >> <mailto:leif@nuviainc.com>; Richardson, Brian >> <mailto:brian.richardson@intel.com> >> *Subject: *Re: [edk2-devel] CdePkgBlog 2021-11-14 >> >> Hi Kilian, >> >> From my point of view, the main problem with adoption of CdePkg to >> EDK2 is that it relies on Torito C library. >> >> 1. Torito C library License >> (https://github.com/KilianKegel/toro-C-Library/blob/master/LICENSE.md) >> only allows for creating UEFI Shell applications. >> * What about applications that do not rely on ShellPkg >> (example: SysPrep application that might want to use Redfish, >> which depends on C standard library)? >> * What about drivers/libraries that rely on C standard library? >> * How is that compatible with EDK2 BSD-2-Clause-Patent? >> 2. Torito C is pre-compiled. >> * How can I verify what was actually implemented inside? >> Industry would have to trust your tests, perform own set of >> tests or/and disassemble it (doable, but unacceptable >> effort-wise). >> >> Unless those problems are solved, I simply cannot use it. >> >> Thanks, >> Maciej >> >> On 14-Nov-21 20:51, Kilian Kegel wrote: >> >> Hi All, >> >> as announced last summer, I’d like to start a comprehensive >> tutorial on >> >> how to use Standard C / ANSI C in the UEFI environment and how to >> design and implement >> >> such a library for Shell and POST usage. >> >> Since most parts of that comprehensive work are already done, >> >> I will report, demonstrate and discuss implementation principles >> and details on edk2.groups.io >> >> as a kind of “blog” on a biweekly basis. >> >> Please checkout my first CdePkgBlog >> https://github.com/tianocore/edk2-staging/tree/CdePkg/blogs/2021-11-14#cdepkgblog-2021-11-14 >> >> and enjoy the breathtaking build speed if compiler and linker are >> used exclusively to create MY LEGACY TOOLBOX, >> >> a handy set of one-trick-ponies that I have been using for about >> 25 years. >> >> Have fun, >> >> Kilian >> > > [-- Attachment #2.1: Type: text/html, Size: 16603 bytes --] [-- Attachment #2.2: 3F1FECE7AF8044E584BF5D0CF3028E97.png --] [-- Type: image/png, Size: 13937 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2022-01-16 20:01 UTC | newest] Thread overview: 20+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-07-27 15:48 "StdLibPkg" branch on edk2-staging Maciej Rabeda 2021-07-28 15:34 ` [edk2-devel] " Rebecca Cran 2021-07-28 15:45 ` Maciej Rabeda 2021-07-28 15:59 ` Rebecca Cran 2021-07-28 22:25 ` Tim Lewis 2021-07-28 22:44 ` Rebecca Cran 2021-08-04 11:03 ` Leif Lindholm 2021-08-05 3:35 ` Andrew Fish 2021-08-05 4:14 ` Kilian Kegel [not found] ` <16984DDFBF70DC40.16396@groups.io> 2021-08-11 13:19 ` Kilian Kegel 2021-11-14 19:51 ` CdePkgBlog 2021-11-14 Kilian Kegel 2021-11-22 16:31 ` [edk2-devel] " Maciej Rabeda 2021-11-24 20:21 ` Kilian Kegel 2021-11-24 22:50 ` Pedro Falcato 2021-11-28 20:35 ` CdePkgBlog 2021-11-18 Kilian Kegel [not found] ` <16BBD01DEB5EF921.4083@groups.io> 2021-12-12 20:02 ` CdePkgBlog 2021-12-12 Kilian Kegel 2021-12-19 20:51 ` CdePkgBlog 2021-12-19 Kilian Kegel 2022-01-16 20:01 ` CdePkgBlog 2022-01-16 -- Introduction of the ACPICA port to UEFI Kilian Kegel 2021-11-30 10:09 ` [edk2-devel] CdePkgBlog 2021-11-14 Maciej Rabeda [not found] ` <16BC4B25BB307B73.14741@groups.io> 2021-11-30 20:15 ` Maciej Rabeda
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox