linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
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/

      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 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).