All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Malek <dan@mvista.com>
To: paulus@linuxcare.com.au
Cc: Linux/PPC Development <linuxppc-dev@lists.linuxppc.org>
Subject: Re: __ioremap_at() in 2.4.0-test9-pre2
Date: Wed, 20 Sep 2000 11:56:10 -0400	[thread overview]
Message-ID: <39C8DE1A.BC8EF0B6@mvista.com> (raw)
In-Reply-To: 14791.61311.118516.747495@argo.linuxcare.com.au


Paul Mackerras wrote:


> ....  The virtual <-> physical
> mappings are set up so that the 2nd host bridge's I/O space is mapped
> in starting at 0xff100000.  The result is that doing inb(0x101000)
> accesses the device as expected.

You still have to be careful here.  Drivers that are written to
do this may also make the assumption they can store that "address"
in a 16-bit (signed, even worse) variable.  You will have to change
drivers (or structures) in this case.

I don't so much care if in/out is used/abused, but I think device
drivers should be written such that they ask for addresses through
the PCI (or other I/O) subsystem, rather than just grab BARs and
expect to use them.  The x86 in/out was stupid back in 1983, and is
even less useful today.  It is lots easier to adopt a memory mapped
model and adapt it to x86, than for the rest of us to keep trying to
create contortions of an address map just so we can use poorly written
x86 device drivers.  I think it is easier to update a driver, which
I have done on a couple of occasions, to be more portable than to
try and find ways to use it without making any changes.  The authors
of the drivers have even accepted this in some cases :-).

These address mapping hacks were fine years ago when there was
only one PCI bus at a fixed address in the system.  Today, there
are lots of busses, with transparent (or not) bridges, and we have
a PCI subsystem in Linux that is maturing into a really useful set of
functions.  The embedded CompactPCI systems are way ahead of workstations
in terms of complexity of PCI (and other) bus structures.  In these
environments we rely heavily on the virtual mapping of I/O, and if
you have a BAR it doesn't mean much to your driver.  I would like to
see us look toward the future, to a model where we map I/O through
the VM subsystem, instead of trying to find hacks to support addressing
assumptions that just aren't valid any longer.


	-- Dan

--

	I like MMUs because I don't have a real life.

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

  parent reply	other threads:[~2000-09-20 15:56 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-09-17 18:59 __ioremap_at() in 2.4.0-test9-pre2 Geert Uytterhoeven
2000-09-19  3:59 ` Paul Mackerras
2000-09-19  5:56   ` Michel Lanners
2000-09-19 14:28   ` Dan Malek
2000-09-19 18:31     ` Roman Zippel
2000-09-19 20:09       ` Dan Malek
2000-09-19 23:42         ` Roman Zippel
2000-09-20  0:10           ` Dan Malek
2000-09-20 17:18             ` Roman Zippel
2000-09-20 18:11               ` Dan Malek
2000-09-20 20:22                 ` Roman Zippel
2000-09-20 20:41                 ` David Edelsohn
2000-09-21  2:16                   ` Dan Malek
2000-09-21  2:26                     ` David Edelsohn
2000-09-21  2:40                       ` Dan Malek
2000-09-21  3:53                         ` David Edelsohn
2000-09-19 22:06   ` Matt Porter
2000-09-19 22:58     ` Paul Mackerras
2000-09-20  6:12       ` Matt Porter
2000-09-20 12:15         ` Geert Uytterhoeven
2000-09-20 23:08         ` Paul Mackerras
2000-09-21 20:12           ` Matt Porter
2000-09-20  8:34       ` Roman Zippel
2000-09-20 22:54         ` Paul Mackerras
2000-09-20 15:56       ` Dan Malek [this message]
2000-09-20 23:22         ` Paul Mackerras
2000-09-21  2:13           ` Dan Malek
2000-09-21  2:35             ` Paul Mackerras
2000-09-21  3:57               ` Dan Malek
2000-09-21  5:06                 ` Paul Mackerras
2000-09-21  6:51                   ` Dan Malek
2000-09-21 14:03                     ` Geert Uytterhoeven
2000-09-21 22:40                       ` Benjamin Herrenschmidt
2000-09-22  3:53                       ` Dan Malek
2000-09-22 11:58                         ` Geert Uytterhoeven
2000-09-22 18:46                           ` Dan Malek
2000-09-22 20:06                             ` Frank Rowand
2000-09-23 21:38                             ` Matt Porter
2000-09-21 20:22                     ` Matt Porter
2000-09-22  3:49                     ` Paul Mackerras
2000-09-22  4:16                       ` Dan Malek
2000-09-23 12:34                       ` Geert Uytterhoeven
2000-09-27 10:37                         ` Benjamin Herrenschmidt
2000-09-28  9:59                           ` Geert Uytterhoeven
2000-09-28 19:19                             ` Benjamin Herrenschmidt
2000-09-28 23:33                               ` Benjamin Herrenschmidt
2000-09-29  5:08                               ` Dan Malek
2000-09-29 11:37                               ` Geert Uytterhoeven
2000-09-29 17:12                                 ` Kostas Gewrgiou
2000-09-29 17:18                                 ` Benjamin Herrenschmidt
2000-09-29 21:35                                 ` Michel Lanners
2000-09-30  0:11                                 ` Matt Porter
2000-09-29  0:22                             ` Paul Mackerras
2000-09-29  0:40                               ` Benjamin Herrenschmidt
2000-09-29  1:17                                 ` Paul Mackerras
2000-09-29  4:22                                   ` Dan Malek
2000-09-29  4:29                               ` Dan Malek
2000-09-29  4:36                                 ` Paul Mackerras
2000-09-29  5:40                                   ` Dan Malek
2000-09-29 19:07                                   ` Frank Rowand
2000-09-30  1:39                                     ` Paul Mackerras
2000-09-30 22:50                                       ` Frank Rowand
2000-10-01  1:09                                         ` Dan Malek
2000-10-01  8:16                                           ` Paul Mackerras
2000-10-01 21:30                                             ` Dan Malek
2000-10-01 22:50                                               ` Paul Mackerras
2000-10-02  9:04                                                 ` Dan Malek
2000-09-28 23:24                           ` Frank Rowand
2000-09-21 13:44                   ` Geert Uytterhoeven
2000-09-21 22:41                     ` Benjamin Herrenschmidt
2000-09-22 21:59                       ` Michel Lanners
2000-09-20 12:08     ` Geert Uytterhoeven
2000-09-20 16:31       ` Matt Porter
  -- strict thread matches above, loose matches on Subject: below --
2000-09-21  7:30 Iain Sandoe

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=39C8DE1A.BC8EF0B6@mvista.com \
    --to=dan@mvista.com \
    --cc=linuxppc-dev@lists.linuxppc.org \
    --cc=paulus@linuxcare.com.au \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.