From: James S. <jsi...@us...> - 2001-11-08 17:42:11
|
Update of /cvsroot/linux-mips/linux/arch/mips/sibyte/sb1 In directory usw-pr-cvs1:/tmp/cvs-serv7520/sibyte/sb1 Added Files: Makefile cache_err_handler.S Log Message: Cleanup Makefile crap and add support for Sibyte SB1250 / SWARM. --- NEW FILE: Makefile --- L_TARGET = sb1kern.a OBJS-$(CONFIG_SB1_CACHE_ERROR) += cache_err_handler.o include $(TOPDIR)/Rules.make --- NEW FILE: cache_err_handler.S --- /* * Copyright (C) 2001 Broadcom Corporation * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include <linux/config.h> #include <linux/threads.h> #include <asm/asm.h> #include <asm/cacheops.h> #include <asm/current.h> #include <asm/offset.h> #include <asm/processor.h> #include <asm/regdef.h> #include <asm/cachectl.h> #include <asm/mipsregs.h> #include <asm/stackframe.h> #define __ASSEMBLY__ #include <asm/bootinfo.h> .text /* Special Cache Error handler for SB1 for now*/ LEAF(except_vec2_sb1) .set noat .set mips0 /* * This is a very bad place to be. Our cache error * detection has triggered. If we have write-back data * in the cache, we may not be able to recover. As a * first-order desperate measure, turn off KSEG0 cacheing. */ .set push .set mips64 .set reorder # look for signature of spurious CErr mfc0 k1,$26,0 lui k0,0x4000 bne k0,k1,real_cerr mfc0 k1,$27,1 lui k0,0xffe0 and k1,k0,k1 lui k0,0x0200 bne k0,k1,real_cerr # clear/unlock the registers mtc0 zero,$26,0 mtc0 zero,$27,1 eret # XXXXPK - this is a real error. set the LEDs and spin for now real_cerr: lui k0,0xb00A li k1,'C' sb k1,56(k0) li k1,'E' sb k1,48(k0) li k1,'R' sb k1,40(k0) li k1,'R' sb k1,32(k0) 2: b 2b .set pop END(except_vec2_sb1) |