1/* 2 * arch/mips/vr41xx/nec-cmbvr4133/init.c 3 * 4 * PROM library initialisation code for NEC CMB-VR4133 board. 5 * 6 * Author: Yoichi Yuasa <yyuasa@mvista.com, or source@mvista.com> and 7 * Jun Sun <jsun@mvista.com, or source@mvista.com> and 8 * Alex Sapkov <asapkov@ru.mvista.com> 9 * 10 * 2001-2004 (c) MontaVista, Software, Inc. This file is licensed under 11 * the terms of the GNU General Public License version 2. This program 12 * is licensed "as is" without any warranty of any kind, whether express 13 * or implied. 14 * 15 * Support for NEC-CMBVR4133 in 2.6 16 * Manish Lachwani (mlachwani@mvista.com) 17 */ 18 19#ifdef CONFIG_ROCKHOPPER 20#include <asm/io.h> 21#include <linux/pci.h> 22 23#define PCICONFDREG 0xaf000c14 24#define PCICONFAREG 0xaf000c18 25 26void disable_pcnet(void) 27{ 28 u32 data; 29 30 /* 31 * Workaround for the bug in PMON on VR4133. PMON leaves 32 * AMD PCNet controller (on Rockhopper) initialized and running in 33 * bus master mode. We have do disable it before doing any 34 * further initialization. Or we get problems with PCI bus 2 35 * and random lockups and crashes. 36 */ 37 38 writel((2 << 16) | 39 (PCI_DEVFN(1, 0) << 8) | 40 (0 & 0xfc) | 41 1UL, 42 PCICONFAREG); 43 44 data = readl(PCICONFDREG); 45 46 writel((2 << 16) | 47 (PCI_DEVFN(1, 0) << 8) | 48 (4 & 0xfc) | 49 1UL, 50 PCICONFAREG); 51 52 data = readl(PCICONFDREG); 53 54 writel((2 << 16) | 55 (PCI_DEVFN(1, 0) << 8) | 56 (4 & 0xfc) | 57 1UL, 58 PCICONFAREG); 59 60 data &= ~4; 61 62 writel(data, PCICONFDREG); 63} 64#endif 65 66