From: Benjamin Herrenschmidt <bh40@calva.net>
To: Geert Uytterhoeven <geert@linux-m68k.org>,
<linuxppc-dev@lists.linuxppc.org>
Subject: Re: __ioremap_at() in 2.4.0-test9-pre2
Date: Thu, 28 Sep 2000 21:19:28 +0200 [thread overview]
Message-ID: <19340823125112.7591@mailhost.mipsys.com> (raw)
In-Reply-To: <Pine.LNX.4.10.10009281150130.3468-100000@cassiopeia.home>
>> I'm not sure it would help. It would probably allow a kind of "mapping on
>> demand" of the IO region on memory mapped IOs platforms, but unless we
>> add another parameter to ioportremap telling it the pci_dev (or at least
>> the bus number), we can't "guess" on which IO bus the device is and which
>> physical base we must use.
>
>But we can find out the IO bus by looking in which region the physical
address
>is located, right? Or do we have the same region on different IO busses?
>That would be really weird! Different IO busses should decode different
>regions.
That mean that you intend to feed a physical address to ioportremap and
not an IO address ? Hrm... that mean we need to have the physical address
in the device IO resources instead of the content of the IO BAR. Well,
how should this work for legacy devices, then ? By assuming addresses
below 64k are legacy IO (hard coded) addresses ? I don't like it too much.
The more I think about it, the more I want to separate legacy IO macros
and PCI IO macros :)
I personally would like is:
Each bus define resources which are made of bus addresses on this bus
(not CPU physical address). This is true for both IO and memory
resources. The resources would contain the exact content of the BARs and
this would probably allow to keep the resource management on a given bus
a lot simpler (without fixup's, hooks, tricky calculations, ...)
On most archs, the PCI mem bus address and CPU physical mem address will
be the same (but not on some PRePs, AFAIK).
Then, we can have separate:
- isa_io_remap(range),
- isa_mem_remap(range),
- pci_io_remap(pci_bus, resource_addr)
- pci_mem_remap(pci_bus, resource_addr)
On most platforms, pci_mem_remap would be a simple #define of ioremap.
PReP could handle adding 0xc0000000 there (well, if I understand how PReP
work correctly), and all weird combinations can be handled just fine.
This also allow us to have the platform support code for isa_io_remap()
and isa_mem_remap() artificially put slices of the ISA IO space on
various PCI IO busses & devices (for ex. the VGA ranges could be on an
AGP bus while the legacy serial port ranges would be on a PCI bus with an
ISA bridge).
AFAIK, this scheme should be able to handle pretty much all kind of PCI/
ISA busses out there, including multiple hosts with PCI mem at different
locations, etc...
The BIG issue here is to adapt all drivers...
Ben.
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
next prev parent reply other threads:[~2000-09-28 19:19 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
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 [this message]
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=19340823125112.7591@mailhost.mipsys.com \
--to=bh40@calva.net \
--cc=geert@linux-m68k.org \
--cc=linuxppc-dev@lists.linuxppc.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).