From: thierry.reding@gmail.com (Thierry Reding)
To: linux-arm-kernel@lists.infradead.org
Subject: ARM topic: Is DT on ARM the solution, or is there something better?
Date: Tue, 19 Nov 2013 10:35:05 +0100 [thread overview]
Message-ID: <20131119093504.GF31504@ulmo.nvidia.com> (raw)
In-Reply-To: <528A4B5D.8050809@wwwdotorg.org>
On Mon, Nov 18, 2013 at 10:16:13AM -0700, Stephen Warren wrote:
> On 11/18/2013 09:06 AM, Thierry Reding wrote:
> ...
> > Part of my point was that you could possibly still use the same IP
> > with only a modified (standard) register interface. That way no
> > licensing of third party IP would be needed. You'd only need to
> > rewrite parts of the IP to make it look (and behave) like the
> > standard one.
> >
> > That's exactly how 16550-compatible UARTs work, isn't it? Or even
> > the way that USB (EHCI, ...) work. There's a standardize register
> > interface, possibly with a way for vendor-specific extensions, but
> > the interface itself doesn't need to be licensed, so there are no
> > additional costs to supporting the standard interface. There are
> > only the advantages of being able to reuse a well-tested body of
> > code.
>
> Your idea would be great if it could be made to work in practice.
This wasn't really my idea, so I can't take all the credit for it. =)
> I'm not convinced how possible this would be, without ARM mandating it
> in their contractual licensing terms, or large customers mandating it
> in order to use SoCs for their flagship designs.
I don't think ARM mandating this is necessary. In the end it boils down
to faster time to market, doesn't it? I mean if you have a device that
exposes a standard set of registers and a driver for that standard set
already exists, then it's very little work to get the device working
with it. You also save a lot of work on validation.
The 16550 UART register set wasn't mandated by anyone as far as I know,
but still the majority of UART devices implement it. I guess the same is
true of EHCI or SDHCI.
Some aspects could possibly be solved by making them parts of a bus
specification I guess. If bus specifications made some provisions for
controlling the power, reset, clocking and other aspects of the IP on
that bus, that would make quite a few things easier. That isn't a new
idea of course, it's been done in other systems, such as PCI, before.
> The one fly in the ointment is that even in cases where there are
> standard register interfaces, there are always quirks in how vendors
> implement those interfaces, so HW ends up being 90-99.5% compliant
> with the interface, but with subtle differences. Take a look at
> Tegra's SDHCI, EHCI and PCIe controllers for examples! Still, I
> suppose that even with that caveat, having a 90% identical driver
> compared to a 0% identical driver would be better than where we are
> today.
Yes, that's true. The Linux 8250 driver, while generally dealing with
the same register set, still requires an awful amount of code and data
tables to make it work on the myriad of devices out there. And the set
of registers is pretty small compared to other types of hardware.
I guess in the end it boils down to a redistribution of the workload.
While I think we're doing a pretty good job with adding hardware support
in the Linux kernel, we're still struggling to keep up with new hardware
being continually added. One solution to that problem is to keep adding
massive amounts of software engineers to keep up with the changes in
hardware. Typically this has the side-effect of making the delta between
upstream and downstream kernels larger, unfortunately.
Another solution, the one discussed here, is to move more complexity
into hardware, therefore reducing the workload of software engineers by
making the job of hardware engineers harder.
Thierry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20131119/9df466d4/attachment.sig>
next prev parent reply other threads:[~2013-11-19 9:35 UTC|newest]
Thread overview: 171+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-20 21:26 ARM topic: Is DT on ARM the solution, or is there something better? Stephen Warren
2013-10-20 22:08 ` [Ksummit-2013-discuss] " Mark Brown
2013-10-20 22:21 ` Stephen Warren
2013-10-21 1:00 ` Nicolas Pitre
2013-10-21 9:15 ` Thierry Reding
2013-10-21 14:57 ` Maxime Bizon
2013-10-21 17:07 ` Richard Cochran
2013-10-21 20:24 ` Stephen Warren
2013-10-22 9:24 ` Thierry Reding
2013-10-23 17:30 ` Richard Cochran
2013-10-23 19:06 ` Thierry Reding
2013-10-22 17:22 ` Jason Gunthorpe
2013-10-21 20:29 ` Stephen Warren
2013-10-21 20:40 ` Nicolas Pitre
2013-10-22 9:39 ` Thierry Reding
2013-10-22 15:04 ` Matt Porter
2013-10-22 17:13 ` Jason Gunthorpe
2013-10-22 17:49 ` Guenter Roeck
2013-10-23 8:06 ` Richard Cochran
2013-10-23 9:49 ` Thierry Reding
2013-10-23 17:16 ` Richard Cochran
2013-10-23 17:25 ` Matt Porter
2013-10-23 18:05 ` Richard Cochran
2013-10-23 18:57 ` Nicolas Pitre
2013-10-23 20:12 ` Matt Porter
2013-10-23 17:55 ` Nicolas Pitre
2013-10-23 18:13 ` Richard Cochran
2013-10-23 20:35 ` Thierry Reding
2013-10-23 17:29 ` Jason Gunthorpe
2013-10-23 17:45 ` Richard Cochran
2013-10-23 18:46 ` Maxime Bizon
2013-10-23 18:51 ` Richard Cochran
2013-10-23 19:12 ` Maxime Bizon
2013-10-24 9:52 ` Grant Likely
2013-10-24 11:33 ` Maxime Bizon
2013-10-24 11:47 ` David Woodhouse
2013-10-24 12:13 ` Maxime Bizon
2013-10-24 12:22 ` David Woodhouse
2013-10-24 12:22 ` David Woodhouse
2013-10-24 13:05 ` Maxime Bizon
2013-10-24 13:14 ` David Woodhouse
2013-10-24 13:46 ` Maxime Bizon
2013-10-24 19:52 ` Matt Porter
2013-10-24 20:11 ` Matt Sealey
2013-10-25 9:00 ` Stephen Warren
2013-10-24 12:23 ` Thierry Reding
2013-10-24 12:29 ` David Woodhouse
2013-10-24 13:00 ` Maxime Bizon
2013-10-24 13:10 ` David Woodhouse
2013-10-24 13:30 ` Maxime Bizon
2013-10-24 14:05 ` David Woodhouse
2013-10-24 14:19 ` Thierry Reding
2013-10-24 14:30 ` David Woodhouse
2013-10-24 14:38 ` Thierry Reding
2013-10-24 16:39 ` Nicolas Pitre
2013-10-24 16:45 ` David Woodhouse
2013-10-24 17:08 ` Nicolas Pitre
2013-10-24 18:15 ` jonsmirl at gmail.com
2013-10-24 14:32 ` Richard Cochran
2013-10-24 14:47 ` Thierry Reding
2013-10-24 15:37 ` Nicolas Pitre
2013-10-24 14:33 ` Maxime Bizon
2013-10-24 14:57 ` Thierry Reding
2013-10-24 16:27 ` Nicolas Pitre
2013-10-24 14:12 ` Thierry Reding
2013-10-24 14:22 ` David Woodhouse
2013-10-24 14:23 ` Thierry Reding
2013-10-24 14:38 ` David Woodhouse
2013-10-24 14:58 ` Thierry Reding
2013-10-24 19:58 ` Matt Porter
2013-10-24 23:54 ` Grant Likely
2013-10-25 8:52 ` Stephen Warren
2013-10-25 9:16 ` Thierry Reding
2013-10-23 17:47 ` Richard Cochran
2013-10-23 17:58 ` Nicolas Pitre
2013-10-23 18:02 ` Jason Gunthorpe
2013-10-23 18:23 ` Richard Cochran
2013-10-24 8:34 ` Thierry Reding
2013-10-24 15:00 ` Richard Cochran
2013-10-24 19:46 ` Matt Porter
2013-10-23 18:01 ` Guenter Roeck
2013-10-23 18:25 ` Jason Gunthorpe
2013-10-23 18:30 ` Richard Cochran
2013-10-23 18:54 ` Jason Gunthorpe
2013-10-24 8:06 ` Sascha Hauer
2013-10-24 8:17 ` Thierry Reding
2013-10-24 8:52 ` Sascha Hauer
2013-10-23 23:29 ` Ben Hutchings
2013-10-24 7:32 ` Richard Cochran
2013-10-24 9:35 ` Ben Hutchings
2013-10-24 12:02 ` Andre Heider
2013-10-24 8:01 ` Sascha Hauer
2013-10-24 8:11 ` Thierry Reding
2013-10-22 17:42 ` Nicolas Pitre
2013-10-22 18:21 ` Peter Maydell
2013-10-22 18:36 ` Nicolas Pitre
2013-10-22 19:16 ` Guenter Roeck
2013-10-22 20:12 ` Thierry Reding
2013-10-22 20:41 ` Nicolas Pitre
2013-10-22 21:39 ` Jason Gunthorpe
2013-10-23 8:50 ` Thierry Reding
2013-10-23 9:02 ` Thierry Reding
2013-10-22 20:42 ` Matt Porter
2013-10-23 10:04 ` Thierry Reding
2013-10-23 11:48 ` Peter Maydell
2013-10-23 16:29 ` Matt Porter
2013-10-22 6:47 ` David Brown
2013-10-20 23:11 ` Russell King - ARM Linux
2013-10-20 23:44 ` [Ksummit-2013-discuss] " Guenter Roeck
2013-10-20 23:51 ` Russell King - ARM Linux
2013-10-21 0:13 ` Guenter Roeck
2013-10-21 20:05 ` Stephen Warren
2013-10-22 9:45 ` Thierry Reding
2013-10-21 8:32 ` Sascha Hauer
2013-10-21 8:48 ` Russell King - ARM Linux
2013-10-21 9:27 ` Sascha Hauer
[not found] ` < CAF6AEGtt_2sStiZCNBp9btxevWghSwLZZBdN6ir8eUpX1FXrCQ@mail.gmail.com>
[not found] ` < 20131024072811.GS30088@pengutronix.de>
[not found] ` < CAF6AEGuEho9Ms7ifTE-EmBoQ-=_AXgvGcJxi5qEC0vsZ+H9C+A@mail.gmail.com>
2013-10-21 9:57 ` Russell King - ARM Linux
2013-10-21 10:24 ` Thierry Reding
2013-10-21 10:30 ` Russell King - ARM Linux
2013-10-21 10:41 ` Thierry Reding
2013-10-22 9:19 ` [Ksummit-2013-discuss] " Mark Brown
2013-10-21 20:09 ` Stephen Warren
2013-10-21 23:18 ` Sascha Hauer
2013-10-24 1:14 ` Rob Clark
2013-10-24 7:28 ` Sascha Hauer
2013-10-24 9:00 ` Thierry Reding
2013-10-24 9:21 ` Sascha Hauer
2013-10-24 21:21 ` Rob Clark
2013-10-25 9:24 ` Thierry Reding
2013-11-18 12:45 ` Russell King - ARM Linux
2013-11-18 15:37 ` Thierry Reding
2013-11-18 16:11 ` Russell King - ARM Linux
2013-11-18 16:18 ` Thierry Reding
2013-11-18 18:43 ` Mark Brown
2013-11-19 13:54 ` Grant Likely
2013-10-21 10:04 ` Thierry Reding
2013-10-21 10:57 ` [Ksummit-2013-discuss] " Laurent Pinchart
2013-10-21 10:00 ` Laurent Pinchart
2013-10-21 11:18 ` Sebastian Hesselbarth
2013-10-21 8:54 ` Thierry Reding
2013-10-21 20:19 ` Stephen Warren
2013-10-21 22:51 ` [Ksummit-2013-discuss] " Guenter Roeck
2013-10-22 10:27 ` James Hogan
2013-10-22 16:31 ` Jonathan Cameron
2013-10-22 16:49 ` Guenter Roeck
2013-10-22 20:35 ` Thierry Reding
2013-10-22 21:10 ` Guenter Roeck
2013-10-23 7:57 ` Thierry Reding
2013-10-23 16:01 ` Guenter Roeck
2013-10-23 21:07 ` Thierry Reding
2013-10-24 15:18 ` Guenter Roeck
2013-11-01 10:36 ` Thierry Reding
2013-11-01 13:30 ` Guenter Roeck
2013-10-22 20:48 ` Thierry Reding
2013-10-22 10:25 ` Thierry Reding
2013-10-22 21:44 ` Matt Sealey
2013-10-23 11:41 ` Peter Maydell
2013-10-23 23:02 ` [Ksummit-2013-discuss] " Rob Herring
2013-11-18 12:26 ` Thierry Reding
2013-11-18 13:40 ` Grant Likely
2013-11-18 13:57 ` Mark Brown
2013-11-18 15:29 ` Thierry Reding
2013-11-18 15:50 ` Mark Brown
2013-11-18 16:06 ` Thierry Reding
2013-11-18 17:16 ` Stephen Warren
2013-11-19 9:35 ` Thierry Reding [this message]
2013-11-19 17:27 ` Stephen Warren
2013-11-20 13:29 ` Thierry Reding
2013-11-18 18:35 ` Mark Brown
2013-11-19 9:11 ` Thierry Reding
2013-11-19 10:16 ` Mark Brown
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=20131119093504.GF31504@ulmo.nvidia.com \
--to=thierry.reding@gmail.com \
--cc=linux-arm-kernel@lists.infradead.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).