From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ua1-f47.google.com (mail-ua1-f47.google.com [209.85.222.47]) by mx.groups.io with SMTP id smtpd.web10.5269.1637794250327911954 for ; Wed, 24 Nov 2021 14:50:50 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=c6yNKqSc; spf=pass (domain: gmail.com, ip: 209.85.222.47, mailfrom: pedro.falcato@gmail.com) Received: by mail-ua1-f47.google.com with SMTP id j14so8330691uan.10 for ; Wed, 24 Nov 2021 14:50:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=f8ZdsqizrdUCv0y9DTylDLZoAQEX62OwP+4sSJyuvyI=; b=c6yNKqSc7XCvrswEqkkwyZT1B20KsqYrPb50E/03ZrR1FveThbiFkLdgtfOraCKP9h xU9YkJkGoXrUkQ61zrnTpxlGCXxuIFtWQtUtfZMaU1fVwjXwbKPHJcTikB07va04uzh8 4V7GUCQbJgYU7KRo6Dt7S3V6fTLPkid7Q5q0FRaw+HXjg5KeCE73oQ9lPWM1NTus83kj yRVv+/h1Ln/1PjkQPKteRlyTPVquv2wzB6knJKo5i2GuV4gam2GfYClNnzhl05Wsvdq7 x/lugptH2JVy6tKXEoQJxjoSt21/sJFrA6EGaQBK5S4jeldKn+kV7pJSV9HCqNAvmFnk kTAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=f8ZdsqizrdUCv0y9DTylDLZoAQEX62OwP+4sSJyuvyI=; b=pFSNwcNje+NJnEzRw2F9/dGcM9PutN94JtiSBvYk6bnMUQYojsUAQTLHlZVr01bLMZ LH/Bar7F5NoHYgAGpmgz5B6+u1WYj9AX2NPuhxQo/AXPRzQsLPi7IKsjWvlF6iVL/lNo eDcxq0Jl+gNrqS/cfLD5ltPqySrU63N1TUPlAojHwKPlotoNSpSGPCOkVZQbS8nIjk3V ia3WFal8BpRocTYsRbjXpR65xq21ABCdhQzAy4zoHQJfoi6IfsK+GVdm0wvWbzHS6Twg zseGDTcVJtqtyC1S47GZbLcOwPocWRWUiiF+5scHdj2wlq6ZUimUTI8f3bmZiaZ0i+1G DEnw== X-Gm-Message-State: AOAM5322h2ewWWlLtP26qUeVBgPdGbilS6sd9q4ZiLbMn6Z/ZROS1alk cgHTVsXjgQrO6YL39w0mFY3snfVoOMzozFO7bS5U6xlZC0zdmA== X-Google-Smtp-Source: ABdhPJzEAYawe/HKu+zkiOEOC1lwN+6+zFh/6RpbUabQtSzI4UV6UBuuCYsUuMQuSnc5xzZbQXbwHZMCd95em2/4ms8= X-Received: by 2002:a67:6002:: with SMTP id u2mr1083158vsb.75.1637794248997; Wed, 24 Nov 2021 14:50:48 -0800 (PST) MIME-Version: 1.0 References: <0fb201d783ff$75096c90$5f1c45b0$@insyde.com> <20210804110321.ru56hfsyrfrviuwk@leviathan> <10E41009-D3D6-4166-8843-1D04ECA6CC59@apple.com> <16984DDFBF70DC40.16396@groups.io> <9d11fe9d-b712-0c43-78e4-ff185112336b@linux.intel.com> In-Reply-To: From: "Pedro Falcato" Date: Wed, 24 Nov 2021 22:50:37 +0000 Message-ID: Subject: Re: [edk2-devel] CdePkgBlog 2021-11-14 To: edk2-devel-groups-io , KILIAN_KEGEL@outlook.com Cc: "Rabeda, Maciej" , Rebecca Cran , "tim.lewis@insyde.com" , Mike Kinney , "afish@apple.com" , Leif Lindholm X-Groupsio-MsgNum: 84060 Content-Type: multipart/related; boundary="0000000000006d669d05d190b082" --0000000000006d669d05d190b082 Content-Type: multipart/alternative; boundary="0000000000006d669c05d190b081" --0000000000006d669c05d190b081 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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 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 =E2=80=9CTianocore Community=E2=80=9D: > > > https://edk2.groups.io/g/devel/message/51562?p=3D,,,20,0,0,0::Created,,Cd= ePkg,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 =E2=80=93 that works perfectly.* > > 1. I simply can=E2=80=99t 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 =E2=80=9CTianocore Communit= y=E2=80=9D 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=E2=80=99t have time to get it runn= ing=E2=80=A6) > > (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=E2=80= =A6 > > 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=E2=80=99s fopen-source before using it? > > Have you ever seen > Microsoft/Borland/Symantec/ARM/IBM/Dinkumware/Greenhill/IAR =E2=80=A6 C L= ibraries > source code? > > > > Thanks, > > Kilian > > > > > > Sent from Mail for > Windows > > > > *From: *Rabeda, Maciej > *Sent: *Monday, November 22, 2021 05:31 PM > *To: *devel@edk2.groups.io; KILIAN_KEGEL@OUTLOOK.COM > *Cc: *Rebecca Cran ; tim.lewis@insyde.com; Mike > Kinney ; afish@apple.com; Leif Lindholm > ; Richardson, Brian > *Subject: *Re: [edk2-devel] CdePkgBlog 2021-11-14 > > > > Hi Kilian, > > From my point of view, the main problem with adoption of CdePkg to EDK2 i= s > 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 o= n 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 dis= assemble > 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=E2=80=99d like to start a comprehensive tutor= ial 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 =E2=80=9Cblog=E2=80=9D on a biweekly basis. > > > > Please checkout my first CdePkgBlog > https://github.com/tianocore/edk2-staging/tree/CdePkg/blogs/2021-11-14#cd= epkgblog-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 > > > > > > >=20 > > --=20 Pedro Falcato --0000000000006d669c05d190b081 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Kilian,

I agree with Maciej. There s= hould 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-compa= tible 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=C2=A0(with a compatib= le license) as soon as possible to let the community decide :)=C2=A0
<= div>
Best regards,
Pedro

On Wed, Nov 24, 2021= at 8:21 PM Kilian Kegel <KI= LIAN_KEGEL@outlook.com> wrote:

Hi Maciej,

=C2=A0

CdePkg is already integrated into EDK2 and satisfies all your needs for pre-/post-memory

PEI, DXE, (SMM in latest releases only), BDS and UEF= I Shell too.

=C2=A0

I have introduced CdePkg for POST usage 2 yea= rs ago without any interest of the =E2=80=9CTianocore Community=E2=80=9D:

htt= ps://edk2.groups.io/g/devel/message/51562?p=3D,,,20,0,0,0::Created,,CdePkg,= 20,2,0,65191785

=C2=A0

  1. Klick on the email link above
  2. Klick o= n the first link in that email, that goes to the edk2-staging\cdepkg folder=

=C2=A0<= /u>

  1. read the HOWTO: https://github.com/tianocore/edk2-staging/blob/Cde= Pkg/README.md#howto

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0an= d go for emulation =E2=80=93 that works perfectly.=

  1. I simply can=E2=80=99t do more for you, than to urgently encourag= e to try it out yourself, test it, see what it can do for you=

=C2=A0

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 =E2=80= =9CTianocore Community=E2=80=9D is now aware of serious problems of edk2libc<= u>

and probably ready to exam= ine my solution, that lacks all of those issues.

=C2=A0

You, Maciej, can support CdePkg/ toro C Library by

=C2=A0

  1. testing CdePkg
  2. giving feedback to the community<= u>
  3. updating CdePkg to latest AAEON WhiskeyLake platform (that is on my Desk for = months but I simply don=E2=80=99t have time to get it running=E2=80=A6)<= /u>

(MinnowBoard is d= eprecated now)

=C2=A0

The license issue can not be discussed bef= ore there is any serious interest in CdePkg and toro C Library.

=C2=A0

But if you are seeking=C2=A0 for a free solution, th= at

  • requires unknown additional working hours
  • requires a couple of high motivated maintainers, specialized in Standa= rd C
  • countless=C2=A0 patches will spam your inb= ox folder for years
  • additionally with unpredict= able result

please use=C2=A0 edk2libc, PDCLIB or adjust NewLib f= or your needs.

=C2=A0

>Unless those problems are solved, I simply canno= t use it.

Right, but you are invited to take a test drive! =

In the EDK2 Emulator. Debugging with the best Debugt= ool ever seen=E2=80=A6

Try to get SysPrep and Redfish running in the Emulat= or.

Really, just do it!

=C2=A0

> 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.<= /u>

But, did you check glibc=E2=80=99s fopen-source befo= re using it?

Have you ever seen Microsoft/Borland/Symantec/ARM/IB= M/Dinkumware/Greenhill/IAR =E2=80=A6 C Libraries source code?=

=C2=A0

Thanks,

Kilian

=C2=A0

=C2=A0

Sent from Mail for Windows

=C2=A0

From: Rabeda, Macie= j
Sent: Monday, November 22, 2021 05:31 PM
To: devel@= edk2.groups.io; KILIAN_KEGEL@OUTLOOK.COM
Cc: Rebecc= a Cran; tim.lewis@insyde.com; Mike Kinney; afish@apple.com; <= a href=3D"mailto:leif@nuviainc.com" target=3D"_blank"> Leif Lindholm; Richardson, Brian
Subject: Re: [edk2-devel] CdePkgBlog 2021-11-14

=C2=A0

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/Kilian= Kegel/toro-C-Library/blob/master/LICENSE.md) only allows for creating U= EFI Shell applications.
    • What about applications that do not rely on ShellPkg (example: SysPrep appl= ication 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?
    • 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,

=C2=A0

as announced last summer, I=E2=80=99d like to start = a comprehensive tutorial on

how to use Standard C / ANSI C in the UEFI environme= nt and how to design and implement

such a library for Shell and POST usage.

=C2=A0

Since most parts of that comprehensive work are alre= ady done,

I will report, demonstrate and discuss implementatio= n principles and details on edk2.groups.io

as a kind of =E2=80=9Cblog=E2=80=9D on a biweekly ba= sis.

=C2=A0

Please checkout my first CdePkgBlog https://github.com/tianocore/edk2-staging/tree/CdePkg/blogs/2021-11-14#cdep= kgblog-2021-11-14

and enjoy the breathtaking build speed if compiler a= nd linker are used exclusively to create MY LEGACY TOOLBOX,

a handy set of one-trick-ponies that I have been usi= ng for about 25 years.

=C2=A0

Have fun,

Kilian

=C2=A0

=C2=A0

=C2=A0

=20



--
Pedro Falcato
--0000000000006d669c05d190b081-- --0000000000006d669d05d190b082 Content-Type: image/png; name="3F1FECE7AF8044E584BF5D0CF3028E97.png" Content-Disposition: inline; filename="3F1FECE7AF8044E584BF5D0CF3028E97.png" Content-Transfer-Encoding: base64 Content-ID: <17d5419fae52ee5bedc1> X-Attachment-Id: 17d5419fae52ee5bedc1 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 AAAA7Mfr1/8flayp6Qy1ndsAAAAASUVORK5CYII= --0000000000006d669d05d190b082--