public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Leif Lindholm" <leif@nuviainc.com>
To: "Ni, Ray" <ray.ni@intel.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	"Jiang, Guomin" <guomin.jiang@intel.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>,
	Andrew Fish <afish@apple.com>, Laszlo Ersek <lersek@redhat.com>,
	Michael D Kinney <michael.d.kinney@intel.com>
Subject: Re: [edk2-devel] API breakages and their implications. Was: [PATCH 1/1] MdeModulePkg: UART Dynamic clock freq Support
Date: Tue, 31 Mar 2020 10:22:26 +0100	[thread overview]
Message-ID: <20200331092226.GB7468@vanye> (raw)
In-Reply-To: <734D49CCEBEEF84792F5B80ED585239D5C4CD51C@SHSMSX104.ccr.corp.intel.com>

On Tue, Mar 31, 2020 at 01:53:21 +0000, Ni, Ray wrote:
> Leif,
> Please understand that the concern of this change is all the platforms that uses
> this serial port lib must be changed otherwise build breaks.

Yes. This is the nature of collaborative development.
This is something we on the ARM side have lived with since we got
involved with EDK2, being the less-deployed user of the codebase, and
that is fine.

TianoCore specifically produced the UDK to make life easier for those
who are unable to track upstream, and we have followed that up with
stable tags. I would highly recommend that any team that feels that
this change would be too much effort to move to edk2-stable202002. Of
course, they would then need to manually cherry-pick any improvements
and security fixes from master. That is their choice.

Nevertheless, breaking existing platforms is a side effect, not a
goal. So if an alternative solution can be found (which is not a hack
that is going to affect the codebase negatively over time and simply
need to be fixed properly at a later date), then clearly that is
preferable.

"This breaks many platforms" is a good argument for seeing if a
solution can be found that does not break (as) many platforms. It is
not an argument for duplicating drivers when the change needed for
those platforms is trivial.

These days, Linux tends to deal with API breakages (and other things)
using a semantic patch tool called Coccinelle[1]. It would not be
unreasonable, and indeed it would be helpful to us on the non-x86 side
if something similar was adopted (and semantic patches mandated) for
API breakages in EDK2.

[1] http://coccinelle.lip6.fr/sp.php

Regards,

Leif

> Ard,
> Using Guided HOB sounds a good idea to me: )
> The benefits of using HOB is:
>   Length field in the HOB header can be used for extension if more parameters are needed.
>   DXE can have the HOB access as well.
> 
> EFI_SEC_HOB_DATA_PPI can be used to return the new Guided HOB from SEC phase if needed.
> 
> Thanks,
> Ray
> 
> 
> > -----Original Message-----
> > From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> > Sent: Monday, March 30, 2020 3:45 PM
> > To: Leif Lindholm <leif@nuviainc.com>
> > Cc: Jiang, Guomin <guomin.jiang@intel.com>; devel@edk2.groups.io; pankaj.bansal@nxp.com; Ni, Ray <ray.ni@intel.com>;
> > Wang, Jian J <jian.j.wang@intel.com>; Wu, Hao A <hao.a.wu@intel.com>; Ma, Maurice <maurice.ma@intel.com>; Dong,
> > Guo <guo.dong@intel.com>; You, Benjamin <benjamin.you@intel.com>; Meenakshi Aggarwal
> > <meenakshi.aggarwal@nxp.com>; Varun Sethi <V.Sethi@nxp.com>; Samer El-Haj-Mahmoud <Samer.El-Haj-
> > Mahmoud@arm.com>
> > Subject: Re: [edk2-devel] [PATCH 1/1] MdeModulePkg: UART Dynamic clock freq Support
> > 
> > On Mon, 30 Mar 2020 at 09:35, Leif Lindholm <leif@nuviainc.com> wrote:
> > >
> > > Hi Jiang,
> > >
> > > It is not a question of effort of copying a driver, it is a question
> > > that copying drivers is something that should be avoided wherever
> > > practically possible. I did not think this topic was still under
> > > debate.
> > >
> > > If the existing 16550 SerialPortLib is overspecialised to the point
> > > where it only works on a subset of 16550 implementations, then it
> > > should change. There are going to be more non-PC systems turning up
> > > with 16550 UARTs - should they each copy/modify their drivers?
> > >
> > > If there are better ways of solving that problem, please suggest.
> > > But more duplicated drivers is not the answer.
> > >
> > 
> > Could we use a GUIDed HOB? If it exists, we use its contents, and if
> > it doesn't, we use the default set by the FixedPCD.

  reply	other threads:[~2020-03-31  9:22 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-19 13:31 [PATCH 0/1] UART Dynamic clock freq Support Pankaj Bansal
2020-02-19 13:31 ` [PATCH 1/1] MdeModulePkg: " Pankaj Bansal
2020-03-19 13:40   ` [edk2-devel] " Samer El-Haj-Mahmoud
2020-03-19 15:09   ` Ni, Ray
2020-03-19 15:30     ` Leif Lindholm
2020-03-23  5:31       ` Pankaj Bansal
2020-03-26 14:13         ` [edk2-devel] " Guomin Jiang
2020-03-28 12:36           ` Pankaj Bansal
2020-03-30  1:20             ` Guomin Jiang
2020-03-30  7:35               ` Leif Lindholm
2020-03-30  7:44                 ` Ard Biesheuvel
2020-03-31  1:53                   ` Ni, Ray
2020-03-31  9:22                     ` Leif Lindholm [this message]
2020-03-31 12:11                       ` [edk2-devel] API breakages and their implications. Was: " Ni, Ray
2020-03-31 12:59                         ` Leif Lindholm
2020-03-31 13:23                       ` Laszlo Ersek
2020-04-01 12:55                         ` Leif Lindholm
2020-04-11 11:54                     ` [edk2-devel] " Pankaj Bansal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200331092226.GB7468@vanye \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox