linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: "Grant Likely" <grant.likely@secretlab.ca>
To: "John Bonesio" <john.bonesio@xilinx.com>
Cc: linuxppc-embedded@ozlabs.org
Subject: Re: Ethernet driver for Linux kernel 2.6 running on ML403
Date: Thu, 14 Sep 2006 16:49:09 -0600	[thread overview]
Message-ID: <528646bc0609141549p319f01dfwb0d2897bb0bdc41f@mail.gmail.com> (raw)
In-Reply-To: <2FE3DBF1797A1443AAB3FA0EF6BF4EEC021EA645@XSJ-EXCHVS1.xlnx.xilinx.com>

On 9/14/06, John Bonesio <john.bonesio@xilinx.com> wrote:

<snip>

> << Same complaints apply for Xilinx drivers in the U-Boot bootloader.
> It is proving very difficult to get Xilinx code into U-Boot which means
> BSPs that use the code are hard to get submitted as well.>>
>
> I've only touched on U-Boot a little bit. Have any thoughts on how to
> make this easier?

U-Boot has the same issues as Linux
- Xilinx drivers don't match the coding style
- The license boilerplate is not GPL compatible
- The IP can change rapidly, so do the drivers belong in the u-boot
mainline tree?
- Current code is not set up to support multiple drivers in the code
base.  (I know it's possible, but it's not being done at the moment)

(and see my comments on Linux below)

>
> << The Xilinx approach of overwriting the source tree just feels wrong,
> and no one seems to want to do it that way.>>
>
> I am in the group that has control over how this is done. What would you
> propose be done different? Keep in mind that we are trying to support a
> process where someone builds a hardware design and the later changes it
> with new peripherals or perhaps makes minor tweaks. We want to make the
> updating of the Linux kernel to reflect these hardware changes easy for
> people.

Simply generating code and inserting it into the kernel tree itself is
okay on the surface, but the current scheme is distasteful.  I would
make the following recommendations to make it more palatable:
- Keep generated code in a single sub-directory.  Don't scatter it all
over the kernel source.  ie. generate all code into /xilinx-bsp
instead of bits into /arch/ppc and /drivers.
- Don't overwrite *anything* that from the mainline tree.  (Hence the
/xilinx-bsp suggestion above).  If you need to modify files in the
tree, like in /arch/ppc, then submit patches for the needed changes
and *don't* try to modify them from within EDK.
- If you want something in mainline; make sure it can coexist with
drivers for other versions of the same IP, or make it support multiple
versions.
- Corollary to the above two points; once a Xilinx provided
patch/driver is accepted into mainline, treat it like the rest of
mainline and don't let EDK overwrite it.
- Regardless of Xilinx's intentions, 3rd party drivers will probably
be written and accepted into mainline.  Be prepared to coexist with
them also.
- Stop requiring xparameters.h to be mangled!  Generate it correctly
the first time!  I think I'll scream if I get handed another xparams
file from an FPGA engineer which was generated as a no-os target.  The
Linux redefines are useful, why aren't they in xparameters.h for all
targets?

Unfortunately, generating the drivers ends up being a one way street.
If the code is not in mainline, it will not keep up with changes to
the kernel API, and it is more difficult to get bug fixes into the
driver code from 3rd parties (ie. users need to wait for the next EDK
release cycle before the changes appear in generated code).  This is
probably the major reason why writing new 3rd party drivers for
inclusion in mainline is attractive to me.

>
> Having the ability to make rapid hardware changes, I think, is a bit
> different from what most folks are used to.

Different, but manageable.

-- 
Grant Likely, B.Sc. P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195

  parent reply	other threads:[~2006-09-14 22:49 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-14 16:40 Ethernet driver for Linux kernel 2.6 running on ML403 John Bonesio
2006-09-14 17:36 ` Keith J Outwater
2006-09-14 22:02   ` T Ziomek
2006-09-14 23:16   ` David H. Lynch Jr.
2006-09-14 22:49 ` Grant Likely [this message]
2006-09-15 16:11   ` T Ziomek
2006-09-19 10:13 ` Peter Korsgaard
2006-09-19 18:06 ` Andrew
  -- strict thread matches above, loose matches on Subject: below --
2006-09-15 19:13 John Bonesio
2006-09-19 14:16 ` Grant Likely
2006-09-14 17:52 John Bonesio
2006-09-14 23:08 ` Keith J Outwater
2006-09-15  0:08 ` David H. Lynch Jr.
2006-09-15  1:14 ` David H. Lynch Jr.
     [not found] <mailman.241.1158193867.2423.linuxppc-embedded@ozlabs.org>
2006-09-14  1:40 ` Aleck Lin
2006-09-14  1:48   ` Eugene Surovegin
2006-09-14  1:52   ` Grant Likely
2006-09-14 11:18     ` David H. Lynch Jr.
2006-09-14 13:53       ` Michael Galassi
2006-09-14 14:34         ` Grant Likely
2006-09-14 15:47           ` Keith J Outwater
2006-09-14 22:57             ` Grant Likely
2006-09-19  7:48           ` Peter Korsgaard
2006-09-19 14:17             ` Grant Likely
2006-09-19 20:10               ` Grant Likely
2006-09-19 20:40                 ` David H. Lynch Jr.
2006-09-19 21:27                   ` Grant Likely
2006-09-24  5:42                     ` David H. Lynch Jr.
2006-09-24 14:35                       ` Grant Likely
2006-09-14 23:02         ` David H. Lynch Jr.

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-all 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=528646bc0609141549p319f01dfwb0d2897bb0bdc41f@mail.gmail.com \
    --to=grant.likely@secretlab.ca \
    --cc=john.bonesio@xilinx.com \
    --cc=linuxppc-embedded@ozlabs.org \
    /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;
as well as URLs for NNTP newsgroup(s).