linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Andrew <acmay@acmay.homeip.net>
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: Tue, 19 Sep 2006 11:06:01 -0700	[thread overview]
Message-ID: <20060919110601.5ba728ea@localhost.localdomain> (raw)
In-Reply-To: <2FE3DBF1797A1443AAB3FA0EF6BF4EEC021EA645@XSJ-EXCHVS1.xlnx.xilinx.com>

On Thu, 14 Sep 2006 09:40:53 -0700
"John Bonesio" <john.bonesio@xilinx.com> wrote:

> 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.
> 
> Having the ability to make rapid hardware changes, I think, is a bit
> different from what most folks are used to.

I am coming into this a bit late and it has been awhile since I worked
Virtex parts. But it doesn't look like things have changed much.

Since Linux is from a PC base, hardware changes are as rapid as
powering off and plugging a new device in the machine. Rebuilding the
kernel for this is not usually something people consider for this.
So to say Linux people aren't use to rapid hardware changes, seems
pretty backwards to me.

The static configuration of the hardware is the thing that is very
unusual for the software. And having that static hardware setup
compiled into the kernel is a real source of problems.
Typically things get probed, discovered/learned at boot time. Either by
the boot loader, pin strapping, dip switches, user config etc.

I worked on a board with 2 Virtex chips. They had some set of common IP
cores with minor differences between the two. There was no way I wanted
to build 2 sets of kernels and drivers to deal with things.
The first small difference of one chip having 2 serial ports and the
other side only having 1 serial port, rippled the entire IRQ mapping in
both xparameters.h file. There were all kinds of little changes between
the mem mapping and everything else as well.
Depending on how things were used from xparemeters.h I could change the
static numbers to function calls to get values, but most of the time I
easist to hack up the drivers to pick one of two values depending on
the chip.

At first I just used a kernel boot param saved in u-boot flash to tell
the SW which chip it was running on. Then I got our HW people to put
in a single bit in another register for SW to tell which chip was
running. That saved us setup step in production of setting up flash
with different items.

There are trade offs on how much it is worth being determined at run
time compared to compiled into the kernel, but with the current
xparemters.h you are stuck with things compiled in. Getting to a point
where anything can be learned at run time, or just pulled from flash
would be a big step forward. But at that point it should still be easy
to compile things into the kernel if someone has major sw space
constraints.

I also keep hearing about doing partial re-configuration bit streams.
Were the FPGA can change at run time as well. (ie switch from an
CAT5 ethernet IP core over to an 802.11 ethernet depending on if the
user plugs in a cable or an antenna)

How would you even plan to do that with the xparemters.h file and the
drivers as it is now?

  parent reply	other threads:[~2006-09-19 18:22 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
2006-09-15 16:11   ` T Ziomek
2006-09-19 10:13 ` Peter Korsgaard
2006-09-19 18:06 ` Andrew [this message]
  -- 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=20060919110601.5ba728ea@localhost.localdomain \
    --to=acmay@acmay.homeip.net \
    --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).