From: Jim Rowe <rowejames@acmsystems.com>
To: Jerry Van Baren <gerald.vanbaren@smiths-aerospace.com>
Cc: linuxppc-embedded@lists.linuxppc.org
Subject: Re: MPC8250 + PCMCIA + airo_cs card + IO Port mapping proble
Date: 22 May 2003 21:01:01 -0700 [thread overview]
Message-ID: <1053662461.16860.17.camel@kneedragger> (raw)
In-Reply-To: <5.1.0.14.2.20030522143346.04b7e260@falcon.si.com>
On Thu, 2003-05-22 at 11:35, Jerry Van Baren wrote:
> Kernel memory space starts at 0xC0000000. You need to set your I/O well
> above this (above the kernel executable). It is illegal to have I/O below
> the kernel (its a memory management issue). That is why the common IMMR
> setting is 0xF0000000. I would suggest you try setting your PCI window at
> 0xF8000000 or something like that.
>
> gvb
Ok, thanks for the pointer. I've scooted my PCI IO space up in memory to
where I had room.
This is how my IO is now setup:
pci_init_resource(&hose->io_resource,
0xd0000000,
0xdfffffff,
IORESOURCE_IO,
"PCI host bridge");
pci_init_resource (&hose->mem_resources[0],
0x80000000,
0x803fffff,
IORESOURCE_MEM,
"PCI host bridge");
hose->io_space.start = 0xd0000000;
hose->io_space.end = 0xdfffffff;
hose->mem_space.start = 0x7ff00000;
hose->mem_space.end = 0x803fffff;
hose->io_base_virt = (void *)0;
my _IO_BASE is now 0xd0000000 and I do
io_block_mapping(0xd0000000, 0xd0000000, 0x1000000, _PAGE_IO);
early when the board is getting setup.
I've also setup PCIBR0 and PCIBR1 in the boot loader to have windows of
0x80000000 to 0xbfffffff and 0xd0000000 to 0xdfffffff.
Now when I try to write to the PCMCIA card, I don't see anything go out
on the PCMCIA bus (write enable and chipselect don't change). A printk
in the out_le16() routine shows that the address seems to be correct
(0xd00000102), but when I try to read from the card I get a Machine
Check Exception that is "Transfer ack error". I suspect that my IO
mapping is still not correct.
I know that the board is wired up correctly because the I am able to
read the card's CIS through io memory. Why aren't my IO Ports working?
-- James
>
>
> At 12:29 PM 5/22/2003 -0400, you wrote:
>
> >On Wed, 2003-05-21 at 21:33, Dan Malek wrote:
> > > Jim Rowe wrote:
> > >
> > > >>From what I can see - and please correct me if I'm wrong, the way that
> > > > Linux translates the Port IO to the memory mapped IO is through the outb
> > > > and outw macros, which add an offset of _IO_BASE. How do I determine the
> > > > correct value of _IO_BASE?
> > >
> > > The value of _IO_BASE depends upon how you configure and map the host PCI
> > > bridge on the 8250.
> >
> >Here is how my PCI bridge gets mapped:
> >
> > pci_init_resource(&hose->io_resource,
> > 0xb0000000,
> > 0xb00fffff,
> > IORESOURCE_IO,
> > "PCI host bridge");
> >
> > pci_init_resource (&hose->mem_resources[0],
> > 0x80000000,
> > 0x803fffff,
> > IORESOURCE_MEM,
> > "PCI host bridge");
> >
> > hose->io_space.start = 0xb0000000;
> > hose->io_space.end = 0xb00fffff;
> > hose->mem_space.start = 0x7ff00000;
> > hose->mem_space.end = 0x803fffff;
> > hose->io_base_virt = (void *)0;
> >
> >
> >
> > >
> > > > ... I looked in m8260_setup.c and found
> > >
> > > The 8260 doesn't have a PCI bridge, so these mappings aren't appropriate
> > > for your board. The 0xf0000000 is needed to get to the IMMR space, but
> > > those accesses don't (shouldn't) be using in/out macros. The 0xe0000000
> > > space is generally used for flash prom, external devices, local sdram
> > > and so on.
> >
> >I am basing the 8250 startup from the m8260_setup.c file.
> >
> >
> > >
> > > There are a variety of configuration options for the PCI bridge and all of
> > > the other I/O in your system and the mapping using either BATs or page
> > > tables. It depends upon the address ranges of all of the I/O in your
> > > system and their physical space allocation.
> > >
> >
> >It looks like my _IO_BASE should be 0xb0000000. I've added a line in
> >m8260_setup.c to do
> >
> > io_block_mapping(0xb0000000, 0xb0000000, 0x000fffff, _PAGE_IO);
> >
> >however, I get an Oops when I try to write with an outw(). From my debug
> >statements I see the address I'm trying to write to is
> >
> >16-bit write: addr:b0000102 val:00000000
> >
> >which looks correct since it is adding the 0xb0000000 offset.
> >
> >Does it look like I have my mapping setup properly, and if so why am I
> >still getting Oopses?
> >
> >
> >
> > >
> > > -- Dan
> > >
> > >
> >--
> >Jim Rowe
> >Advanced CounterMeasure Systems
> >Phone: (916)669-4304
> >Email: jrowe@acmsystems.com
> >
> >
>
>
>
> **********************************************************************
> This e-mail and any files transmitted with it may be confidential and
> may be legally privileged or otherwise exempt from disclosure under
> applicable law. This e-mail and its files are intended solely for
> the individual or entity to whom they are addressed and their content
> is the property of Smiths Aerospace. If you are not the intended
> recipient, please do not read, copy, use or disclose this communication.
> If you have received this e-mail in error please notify the e-mail
> administrator at postmaster@smiths-aerospace.com and then delete this
> e-mail, its files and any copies.
>
> This footnote also confirms that this e-mail message has been scanned
> for the presence of known computer viruses.
>
> Smiths addresses are changing! The new addresses are of the form
> firstname.lastname@smiths-aerospace.com. Please update your address
> books! Please begin using the new form immediately.
> ***********************************************************************
--
Jim Rowe
Advanced CounterMeasure Systems
Phone: (916)669-4304
Email: jrowe@acmsystems.com
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
next parent reply other threads:[~2003-05-23 4:01 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <5.1.0.14.2.20030522143346.04b7e260@falcon.si.com>
2003-05-23 4:01 ` Jim Rowe [this message]
2003-05-23 22:14 ` MPC8250 + PCMCIA + airo_cs card + IO Port mapping proble Jim Rowe
2003-05-23 21:45 ` Dan Malek
2003-05-23 22:44 ` Wolfgang Denk
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=1053662461.16860.17.camel@kneedragger \
--to=rowejames@acmsystems.com \
--cc=gerald.vanbaren@smiths-aerospace.com \
--cc=linuxppc-embedded@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 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.