* ioremap?
@ 2002-05-29 12:33 Brian Murphy
2002-05-29 16:09 ` ioremap? Bradley D. LaRonde
0 siblings, 1 reply; 4+ messages in thread
From: Brian Murphy @ 2002-05-29 12:33 UTC (permalink / raw)
To: linux-mips
[-- Attachment #1: Type: text/plain, Size: 202 bytes --]
In three files/drivers I have had problems with physical addresses not
being ioremapped.
I include my patch to fix things up and request comments. How come
others don't have similar
problems?
/Brian
[-- Attachment #2: ioremap.diff --]
[-- Type: text/plain, Size: 1736 bytes --]
--- drivers/ide/ide-dma.c 2001/10/19 01:24:24 1.9
+++ drivers/ide/ide-dma.c 2002/05/29 11:49:14
@@ -741,7 +741,8 @@
if (hwif->mate && hwif->mate->dma_base) {
dma_base = hwif->mate->dma_base - (hwif->channel ? 0 : 8);
} else {
- dma_base = pci_resource_start(dev, 4);
+ dma_base = ioremap(pci_resource_start(dev, 4),
+ pci_resource_len(dev, 4));
if (!dma_base) {
printk("%s: dma_base is invalid (0x%04lx)\n", name, dma_base);
dma_base = 0;
--- drivers/ide/ide-pci.c 2001/11/19 13:53:59 1.20
+++ drivers/ide/ide-pci.c 2002/05/29 11:49:15
@@ -716,8 +716,10 @@
if (IDE_PCI_DEVID_EQ(d->devid, DEVID_HPT366) && (port) && (class_rev < 0x03))
return;
if ((dev->class >> 8) != PCI_CLASS_STORAGE_IDE || (dev->class & (port ? 4 : 1)) != 0) {
- ctl = dev->resource[(2*port)+1].start;
- base = dev->resource[2*port].start;
+ ctl = ioremap(pci_resource_start(dev, (2*port)+1),
+ pci_resource_len(dev, (2*port)+1));
+ base = ioremap(pci_resource_start(dev, 2*port),
+ pci_resource_len(dev, 2*port));
if (!(ctl & PCI_BASE_ADDRESS_IO_MASK) ||
!(base & PCI_BASE_ADDRESS_IO_MASK)) {
printk("%s: IO baseregs (BIOS) are reported as MEM, report to <andre@linux-ide.org>.\n", d->name);
--- drivers/net/pcnet32.c 2002/02/26 05:59:35 1.33.2.1
+++ drivers/net/pcnet32.c 2002/05/29 11:49:18
@@ -494,7 +494,8 @@
}
pci_set_master(pdev);
- ioaddr = pci_resource_start (pdev, 0);
+ ioaddr = ioremap(pci_resource_start (pdev, 0),
+ pci_resource_len (pdev, 0));
printk(KERN_INFO " ioaddr=%#08lx resource_flags=%#08lx\n", ioaddr, pci_resource_flags (pdev, 0));
if (!ioaddr) {
printk (KERN_ERR "no PCI IO resources, aborting\n");
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: ioremap?
2002-05-29 12:33 ioremap? Brian Murphy
@ 2002-05-29 16:09 ` Bradley D. LaRonde
2002-05-29 17:05 ` ioremap? Brian Murphy
0 siblings, 1 reply; 4+ messages in thread
From: Bradley D. LaRonde @ 2002-05-29 16:09 UTC (permalink / raw)
To: Brian Murphy, linux-mips
Looks like those are for io (inb, outb, etc.) not mem (readb, writeb, etc.).
io addresses shouldn't be ioremapped.
Regards,
Brad
----- Original Message -----
From: "Brian Murphy" <brian@murphy.dk>
To: "linux-mips" <linux-mips@oss.sgi.com>
Sent: Wednesday, May 29, 2002 8:33 AM
Subject: ioremap?
> In three files/drivers I have had problems with physical addresses not
> being ioremapped.
> I include my patch to fix things up and request comments. How come
> others don't have similar
> problems?
>
> /Brian
>
----------------------------------------------------------------------------
----
> --- drivers/ide/ide-dma.c 2001/10/19 01:24:24 1.9
> +++ drivers/ide/ide-dma.c 2002/05/29 11:49:14
> @@ -741,7 +741,8 @@
> if (hwif->mate && hwif->mate->dma_base) {
> dma_base = hwif->mate->dma_base - (hwif->channel ? 0 : 8);
> } else {
> - dma_base = pci_resource_start(dev, 4);
> + dma_base = ioremap(pci_resource_start(dev, 4),
> + pci_resource_len(dev, 4));
> if (!dma_base) {
> printk("%s: dma_base is invalid (0x%04lx)\n", name, dma_base);
> dma_base = 0;
> --- drivers/ide/ide-pci.c 2001/11/19 13:53:59 1.20
> +++ drivers/ide/ide-pci.c 2002/05/29 11:49:15
> @@ -716,8 +716,10 @@
> if (IDE_PCI_DEVID_EQ(d->devid, DEVID_HPT366) && (port) && (class_rev <
0x03))
> return;
> if ((dev->class >> 8) != PCI_CLASS_STORAGE_IDE || (dev->class & (port ?
4 : 1)) != 0) {
> - ctl = dev->resource[(2*port)+1].start;
> - base = dev->resource[2*port].start;
> + ctl = ioremap(pci_resource_start(dev, (2*port)+1),
> + pci_resource_len(dev, (2*port)+1));
> + base = ioremap(pci_resource_start(dev, 2*port),
> + pci_resource_len(dev, 2*port));
> if (!(ctl & PCI_BASE_ADDRESS_IO_MASK) ||
> !(base & PCI_BASE_ADDRESS_IO_MASK)) {
> printk("%s: IO baseregs (BIOS) are reported as MEM, report to
<andre@linux-ide.org>.\n", d->name);
> --- drivers/net/pcnet32.c 2002/02/26 05:59:35 1.33.2.1
> +++ drivers/net/pcnet32.c 2002/05/29 11:49:18
> @@ -494,7 +494,8 @@
> }
> pci_set_master(pdev);
>
> - ioaddr = pci_resource_start (pdev, 0);
> + ioaddr = ioremap(pci_resource_start (pdev, 0),
> + pci_resource_len (pdev, 0));
> printk(KERN_INFO " ioaddr=%#08lx resource_flags=%#08lx\n",
ioaddr, pci_resource_flags (pdev, 0));
> if (!ioaddr) {
> printk (KERN_ERR "no PCI IO resources, aborting\n");
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: ioremap?
2002-05-29 16:09 ` ioremap? Bradley D. LaRonde
@ 2002-05-29 17:05 ` Brian Murphy
2002-05-29 17:25 ` ioremap? Bradley D. LaRonde
0 siblings, 1 reply; 4+ messages in thread
From: Brian Murphy @ 2002-05-29 17:05 UTC (permalink / raw)
Cc: linux-mips
Bradley D. LaRonde wrote:
>Looks like those are for io (inb, outb, etc.) not mem (readb, writeb, etc.).
>io addresses shouldn't be ioremapped.
>
O.K. I have now used set_io_port_base to set the base address to KSEG1.
What should be ioremapped then?
/Brian
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: ioremap?
2002-05-29 17:05 ` ioremap? Brian Murphy
@ 2002-05-29 17:25 ` Bradley D. LaRonde
0 siblings, 0 replies; 4+ messages in thread
From: Bradley D. LaRonde @ 2002-05-29 17:25 UTC (permalink / raw)
To: Brian Murphy; +Cc: linux-mips
----- Original Message -----
From: "Brian Murphy" <brian@murphy.dk>
Cc: "linux-mips" <linux-mips@oss.sgi.com>
Sent: Wednesday, May 29, 2002 1:05 PM
Subject: Re: ioremap?
> Bradley D. LaRonde wrote:
>
> >Looks like those are for io (inb, outb, etc.) not mem (readb, writeb,
etc.).
> >io addresses shouldn't be ioremapped.
> >
> O.K. I have now used set_io_port_base to set the base address to KSEG1.
> What should be ioremapped then?
Any address passed to readb, writeb, etc. For example, a PCI mem resource
address.
Regards,
Brad
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2002-05-29 18:41 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-05-29 12:33 ioremap? Brian Murphy
2002-05-29 16:09 ` ioremap? Bradley D. LaRonde
2002-05-29 17:05 ` ioremap? Brian Murphy
2002-05-29 17:25 ` ioremap? Bradley D. LaRonde
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.