From: Sven Dickert <Sven.Dickert@planb.de>
To: linuxppc-dev@lists.linuxppc.org
Subject: CAROLINA_IRQ_EDGE_MASK_HI, Segment Register 8 instead of BATs on 601
Date: Thu, 26 Jul 2001 10:18:19 +0200 [thread overview]
Message-ID: <20010726101819.A15010@remote.org> (raw)
In-Reply-To: <20010725144239.A11885@austin.ibm.com>; from hollis@austin.ibm.com on Wed, Jul 25, 2001 at 02:42:39PM -0500
Hello,
> > At the moment I'm working on sound support. I changed
> > -#define CAROLINA_IRQ_EDGE_MASK_HI 0xA4 /* IRQ's 8-15 [10,13,15] */
> > +#define CAROLINA_IRQ_EDGE_MASK_HI 0xA0 /* IRQ's 8-15 [10,13,15] */
> > in arch/ppc/kernel/prep_pci.c
> > I found this 'patch' at http://penguinppc.org/dev/prep/tp850.diff
>
> Neither the 40P nor the Thinkpad 850 are Carolina systems, so those constants
> should remain how they are and new ones for other systems introduced. That
> will mean slight changes to the IBM section of prep_route_pci_interrupts(),
> but nothing major.
O.k. it's better done this way:
-------------------------------------------------- 8< ------------------------
diff -rwu linux-2.4.7/arch/ppc/kernel/prep_pci.c linux-2.4.7.40p/arch/ppc/kernel/prep_pci.c
--- linux-2.4.7/arch/ppc/kernel/prep_pci.c Wed Jul 4 18:11:52 2001
+++ linux-2.4.7.40p/arch/ppc/kernel/prep_pci.c Thu Jul 26 10:01:51 2001
@@ -564,6 +565,10 @@
*/
#define CAROLINA_IRQ_EDGE_MASK_LO 0x00 /* IRQ's 0-7 */
#define CAROLINA_IRQ_EDGE_MASK_HI 0xA4 /* IRQ's 8-15 [10,13,15] */
+#define IBM6015_IRQ_EDGE_MASK_LO 0x00 /* IRQ's 0-7 */
+#define IBM6015_IRQ_EDGE_MASK_HI 0xA0 /* IRQ's 8-15 [13,15] */
+#define NOBIS_IRQ_EDGE_MASK_LO 0x00 /* IRQ's 0-7 */
+#define NOBIS_IRQ_EDGE_MASK_HI 0xA0 /* IRQ's 8-15 [13,15] */
/*
* 8259 edge/level control definitions
@@ -839,6 +845,7 @@
} else if ( _prep_type == _PREP_IBM )
{
unsigned char pl_id;
+ unsigned char irq_edge_mask_lo,irq_edge_mask_hi;
/*
* my carolina is 0xf0
* 6015 has 0xfc
@@ -851,27 +858,33 @@
Motherboard_map_name = "IBM 850/860 Portable\n";
Motherboard_map = Nobis_pci_IRQ_map;
Motherboard_routes = Nobis_pci_IRQ_routes;
+ irq_edge_mask_lo=NOBIS_IRQ_EDGE_MASK_LO;
+ irq_edge_mask_hi=NOBIS_IRQ_EDGE_MASK_HI;
break;
case 0xfc:
- Motherboard_map_name = "IBM 6015";
+ Motherboard_map_name = "IBM 6015/7020 (Sandalfoot/Sandalbow)";
Motherboard_map = ibm6015_pci_IRQ_map;
Motherboard_routes = ibm6015_pci_IRQ_routes;
+ irq_edge_mask_lo=IBM6015_IRQ_EDGE_MASK_LO;
+ irq_edge_mask_hi=IBM6015_IRQ_EDGE_MASK_HI;
break;
default:
Motherboard_map_name = "IBM 8xx (Carolina)";
Motherboard_map = ibm8xx_pci_IRQ_map;
Motherboard_routes = ibm8xx_pci_IRQ_routes;
+ irq_edge_mask_lo=CAROLINA_IRQ_EDGE_MASK_LO;
+ irq_edge_mask_hi=CAROLINA_IRQ_EDGE_MASK_HI;
break;
}
/*printk("Changing IRQ mode\n");*/
pl_id=inb(0x04d0);
/*printk("Low mask is %#0x\n", pl_id);*/
- outb(pl_id|CAROLINA_IRQ_EDGE_MASK_LO, 0x04d0);
+ outb(pl_id|irq_edge_mask_lo, 0x04d0);
pl_id=inb(0x04d1);
/*printk("Hi mask is %#0x\n", pl_id);*/
- outb(pl_id|CAROLINA_IRQ_EDGE_MASK_HI, 0x04d1);
+ outb(pl_id|irq_edge_mask_hi, 0x04d1);
pl_id=inb(0x04d1);
/*printk("Hi mask now %#0x\n", pl_id);*/
}
-------------------------------------------------- 8< ------------------------
> In your patch you're using a segment register because 601 BAT's are only 8MB
> (and we need more for IO space). Someone suggested using ioremap in the driver
> (the one causing the page fault), but I suspect the whole reason those BAT
> regions are there is to support legacy IO and not have to get everything to
> ioremap?
I think so, too. It's not just one driver that makes problems. Kernel
shows bad memory access even at "PCI: Probing PCI hardware"
> Is there an equivalent to ioremap that allows the virtual address to
> be specified (want to map 0x80000000 physical to 0x80000000 virtual [NOT
> n+io_base] for IO ports)?
When I get to know about this, I would no longer use SR8 :)
Bye, Sven
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
prev parent reply other threads:[~2001-07-26 8:18 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-07-24 8:51 sound runs double speed on rs6k Sven Dickert
2001-07-25 19:42 ` 601 BAT's Hollis Blanchard
2001-07-26 8:18 ` Sven Dickert [this message]
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=20010726101819.A15010@remote.org \
--to=sven.dickert@planb.de \
--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 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.