Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 1 Dec 2000 19:30:42 +0100
From:      Bernd Walter <ticso@cicely8.cicely.de>
To:        Matthew Jacob <mjacob@feral.com>
Cc:        Andrew Gallatin <gallatin@cs.duke.edu>, Peter Wemm <peter@netplex.com.au>, freebsd-alpha@FreeBSD.ORG
Subject:   Re: Patch to make my PC164 booting.
Message-ID:  <20001201193042.A49869@cicely8.cicely.de>
In-Reply-To: <Pine.BSF.4.21.0011301933210.59011-100000@beppo.feral.com>; from mjacob@feral.com on Thu, Nov 30, 2000 at 07:34:03PM -0800
References:  <14887.6213.634085.237730@grasshopper.cs.duke.edu> <Pine.BSF.4.21.0011301933210.59011-100000@beppo.feral.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--3MwIy2ne0vdjdPXF
Content-Type: text/plain; charset=us-ascii

On Thu, Nov 30, 2000 at 07:34:03PM -0800, Matthew Jacob wrote:
> 
> On Thu, 30 Nov 2000, Andrew Gallatin wrote:
> 
> > Are we sure it works on PC164LX and PC164SX in addtion to PC164?
> 
> No, we're not. Peter? You have a SX don't you?

The attached patch makes it apply only to PC164 systems.

-- 
B.Walter              COSMO-Project         http://www.cosmo-project.de
ticso@cicely.de         Usergroup           info@cosmo-project.de


--3MwIy2ne0vdjdPXF
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="pc164.diff"

Index: alpha/alpha/dec_eb164.c
===================================================================
RCS file: /vol/cvs/FreeBSD/src/sys/alpha/alpha/dec_eb164.c,v
retrieving revision 1.10
diff -u -r1.10 dec_eb164.c
--- alpha/alpha/dec_eb164.c	2000/07/18 18:26:03	1.10
+++ alpha/alpha/dec_eb164.c	2000/12/01 18:27:04
@@ -57,6 +57,8 @@
 static void eb164_intr_init(void);
 extern void eb164_intr_enable(int irq);
 extern void eb164_intr_disable(int irq);
+extern void eb164_intr_enable_icsr(int irq);
+extern void eb164_intr_disable_icsr(int irq);
 
 extern int siocnattach __P((int, int));
 extern int siogdbattach __P((int, int));
@@ -76,8 +78,13 @@
 	platform.cons_init = dec_eb164_cons_init;
 	platform.pci_intr_init = eb164_intr_init;
 	platform.pci_intr_map = NULL;
-	platform.pci_intr_disable = eb164_intr_disable;
-	platform.pci_intr_enable = eb164_intr_enable;
+	if (strncmp(platform.model, "Digital AlphaPC 164 ", 20) == 0) {
+		platform.pci_intr_disable = eb164_intr_disable_icsr;
+		platform.pci_intr_enable = eb164_intr_enable_icsr;
+	} else {
+		platform.pci_intr_disable = eb164_intr_disable;
+		platform.pci_intr_enable = eb164_intr_enable;
+	}
 }
 
 extern int comconsole; /* XXX for forcing comconsole when srm serial console is used */
Index: alpha/pci/pci_eb164_intr.s
===================================================================
RCS file: /vol/cvs/FreeBSD/src/sys/alpha/pci/pci_eb164_intr.s,v
retrieving revision 1.3
diff -u -r1.3 pci_eb164_intr.s
--- alpha/pci/pci_eb164_intr.s	2000/11/09 17:01:21	1.3
+++ alpha/pci/pci_eb164_intr.s	2000/12/01 18:00:49
@@ -63,3 +63,33 @@
 	call_pal PAL_cserve
 	RET
 	END(eb164_intr_disable)
+
+	.text
+LEAF(eb164_intr_enable_icsr,1)
+	mov	a0, a1
+	ldiq	a0, 0x34
+	call_pal PAL_cserve
+	ldiq	a0, 0x08	/* Allow PALRES */
+	call_pal PAL_cserve
+	.long	0x66100118	/* hw_mfpr a0, icsr */
+	ldah	a1, 0x0020	/* IMSK1 */
+	or	a0, a1, a0
+	xor	a0, a1, a0
+	.long	0x76100118	/* hw_mtpr a0, icsr */
+	ldiq	a0, 0x09	/* Disable PALRES */
+	call_pal PAL_cserve
+	RET
+	END(eb164_intr_enable_icsr)
+
+	.text
+LEAF(eb164_intr_disable_icsr,1)
+	ldiq	a0, 0x08	/* Allow PALRES */
+	call_pal PAL_cserve
+	.long	0x66100118	/* hw_mfpr a0, icsr */
+	ldah	a1, 0x0020	/* IMSK1 */
+	or	a0, a1, a0
+	.long	0x76100118	/* hw_mtpr a0, icsr */
+	ldiq	a0, 0x09	/* Disable PALRES */
+	call_pal PAL_cserve
+	RET
+	END(eb164_intr_disable_icsr)

--3MwIy2ne0vdjdPXF--


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20001201193042.A49869>