Date: Tue, 21 Nov 2000 00:38:36 +0100 From: Bernd Walter <ticso@cicely8.cicely.de> To: freebsd-alpha@freebsd.org Subject: Patch to make my PC164 booting. Message-ID: <20001121003836.A20659@cicely8.cicely.de>
next in thread | raw e-mail | index | archive | help
--T4sUOijqQbZv57TR Content-Type: text/plain; charset=us-ascii I don't know the exact problems on other platforms. The attached workaround is promising on my pc164. It basicly adds a removing of the cpu int mask for pci/isa irqs to the int enable code (We may still need to enable when a drivers ataches) and adds the cpu mask in the disabling code. This is similar as holding the ipl higher as the ipl has only one level for all i/o devices which is what the cpu masks disables. If a new device attaches and enables his int a new trap get refired unneededly once. As my patch applys to all eb164 based systems it also applys to former working systems - I don't asume any critical problems with it but it might decrease the performance unnecessarily. Another point is that I use an PAL function to enable PAL privileged commands to access the mask. This cserve funtionality might not be available on every system and needs to be tested. The current result with this is the following: It boots into single user mode everytime I tried which never happened before with the scsi controllers compiled into the kernel. It survived a flood ping via the xl card which never worked before. After all it is still unstable. Usually it hangs during fsck or during cvs co and doesn't react on the seriel anymore. One time I had the luck that it still reacted on the seriel and acepted a break to ddb - swapper was waiting in sched. I don't know if the fix only makes it happen less often or if I'm now seeing different problems. -- B.Walter COSMO-Project http://www.cosmo-project.de ticso@cicely.de Usergroup info@cosmo-project.de --T4sUOijqQbZv57TR Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="alpha.eb164.patch" Index: sys/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 --- sys/alpha/pci//pci_eb164_intr.s 2000/11/09 17:01:21 1.3 +++ sys/alpha/pci//pci_eb164_intr.s 2000/11/20 18:42:20 @@ -53,13 +53,30 @@ 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) .text LEAF(eb164_intr_disable,1) - mov a0, a1 +/* mov a0, a1 ldiq a0, 0x35 + 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 + .long 0x76100118 /* hw_mtpr a0, icsr */ + ldiq a0, 0x09 /* Disable PALRES */ call_pal PAL_cserve RET END(eb164_intr_disable) --T4sUOijqQbZv57TR-- 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?20001121003836.A20659>