MIPS: PMC-Sierra Yosemite: Remove support.
Nobody seems to be interested anymore and upstream also never had an ethernet driver. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
此提交包含在:
@@ -34,8 +34,6 @@ obj-$(CONFIG_MIPS_MALTA) += fixup-malta.o
|
||||
obj-$(CONFIG_PMC_MSP7120_GW) += fixup-pmcmsp.o ops-pmcmsp.o
|
||||
obj-$(CONFIG_PMC_MSP7120_EVAL) += fixup-pmcmsp.o ops-pmcmsp.o
|
||||
obj-$(CONFIG_PMC_MSP7120_FPGA) += fixup-pmcmsp.o ops-pmcmsp.o
|
||||
obj-$(CONFIG_PMC_YOSEMITE) += fixup-yosemite.o ops-titan.o ops-titan-ht.o \
|
||||
pci-yosemite.o
|
||||
obj-$(CONFIG_SGI_IP27) += ops-bridge.o pci-ip27.o
|
||||
obj-$(CONFIG_SGI_IP32) += fixup-ip32.o ops-mace.o pci-ip32.o
|
||||
obj-$(CONFIG_SIBYTE_SB1250) += fixup-sb1250.o pci-sb1250.o
|
||||
|
@@ -1,41 +0,0 @@
|
||||
/*
|
||||
* Copyright 2003 PMC-Sierra
|
||||
* Author: Manish Lachwani (lachwani@pmc-sierra.com)
|
||||
*
|
||||
* 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 SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
||||
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* 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.,
|
||||
* 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/pci.h>
|
||||
|
||||
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
|
||||
{
|
||||
if (pin == 0)
|
||||
return -1;
|
||||
|
||||
return 3; /* Everything goes to one irq bit */
|
||||
}
|
||||
|
||||
/* Do platform specific device initialization at pci_enable_device() time */
|
||||
int pcibios_plat_dev_init(struct pci_dev *dev)
|
||||
{
|
||||
return 0;
|
||||
}
|
@@ -1,124 +0,0 @@
|
||||
/*
|
||||
* Copyright 2003 PMC-Sierra
|
||||
* Author: Manish Lachwani (lachwani@pmc-sierra.com)
|
||||
*
|
||||
* 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 SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
||||
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* 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.,
|
||||
* 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/delay.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
#include <asm/titan_dep.h>
|
||||
|
||||
static int titan_ht_config_read_dword(struct pci_bus *bus, unsigned int devfn,
|
||||
int offset, u32 *val)
|
||||
{
|
||||
volatile uint32_t address;
|
||||
int busno;
|
||||
|
||||
busno = bus->number;
|
||||
|
||||
address = (busno << 16) | (devfn << 8) | (offset & 0xfc) | 0x80000000;
|
||||
if (busno != 0)
|
||||
address |= 1;
|
||||
|
||||
/*
|
||||
* RM9000 HT Errata: Issue back to back HT config
|
||||
* transcations. Issue a BIU sync before and
|
||||
* after the HT cycle
|
||||
*/
|
||||
|
||||
*(volatile int32_t *) 0xfb0000f0 |= 0x2;
|
||||
|
||||
udelay(30);
|
||||
|
||||
*(volatile int32_t *) 0xfb0006f8 = address;
|
||||
*(val) = *(volatile int32_t *) 0xfb0006fc;
|
||||
|
||||
udelay(30);
|
||||
|
||||
* (volatile int32_t *) 0xfb0000f0 |= 0x2;
|
||||
|
||||
return PCIBIOS_SUCCESSFUL;
|
||||
}
|
||||
|
||||
static int titan_ht_config_read(struct pci_bus *bus, unsigned int devfn,
|
||||
int offset, int size, u32 *val)
|
||||
{
|
||||
uint32_t dword;
|
||||
|
||||
titan_ht_config_read_dword(bus, devfn, offset, &dword);
|
||||
|
||||
dword >>= ((offset & 3) << 3);
|
||||
dword &= (0xffffffffU >> ((4 - size) << 8));
|
||||
|
||||
return PCIBIOS_SUCCESSFUL;
|
||||
}
|
||||
|
||||
static inline int titan_ht_config_write_dword(struct pci_bus *bus,
|
||||
unsigned int devfn, int offset, u32 val)
|
||||
{
|
||||
volatile uint32_t address;
|
||||
int busno;
|
||||
|
||||
busno = bus->number;
|
||||
|
||||
address = (busno << 16) | (devfn << 8) | (offset & 0xfc) | 0x80000000;
|
||||
if (busno != 0)
|
||||
address |= 1;
|
||||
|
||||
*(volatile int32_t *) 0xfb0000f0 |= 0x2;
|
||||
|
||||
udelay(30);
|
||||
|
||||
*(volatile int32_t *) 0xfb0006f8 = address;
|
||||
*(volatile int32_t *) 0xfb0006fc = val;
|
||||
|
||||
udelay(30);
|
||||
|
||||
*(volatile int32_t *) 0xfb0000f0 |= 0x2;
|
||||
|
||||
return PCIBIOS_SUCCESSFUL;
|
||||
}
|
||||
|
||||
static int titan_ht_config_write(struct pci_bus *bus, unsigned int devfn,
|
||||
int offset, int size, u32 val)
|
||||
{
|
||||
uint32_t val1, val2, mask;
|
||||
|
||||
titan_ht_config_read_dword(bus, devfn, offset, &val2);
|
||||
|
||||
val1 = val << ((offset & 3) << 3);
|
||||
mask = ~(0xffffffffU >> ((4 - size) << 8));
|
||||
val2 &= ~(mask << ((offset & 3) << 8));
|
||||
|
||||
titan_ht_config_write_dword(bus, devfn, offset, val1 | val2);
|
||||
|
||||
return PCIBIOS_SUCCESSFUL;
|
||||
}
|
||||
|
||||
struct pci_ops titan_ht_pci_ops = {
|
||||
.read = titan_ht_config_read,
|
||||
.write = titan_ht_config_write,
|
||||
};
|
@@ -1,111 +0,0 @@
|
||||
/*
|
||||
* Copyright 2003 PMC-Sierra
|
||||
* Author: Manish Lachwani (lachwani@pmc-sierra.com)
|
||||
*
|
||||
* 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 SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
||||
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* 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.,
|
||||
* 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
#include <linux/types.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/kernel.h>
|
||||
|
||||
#include <asm/pci.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/rm9k-ocd.h>
|
||||
|
||||
/*
|
||||
* PCI specific defines
|
||||
*/
|
||||
#define TITAN_PCI_0_CONFIG_ADDRESS 0x780
|
||||
#define TITAN_PCI_0_CONFIG_DATA 0x784
|
||||
|
||||
/*
|
||||
* Titan PCI Config Read Byte
|
||||
*/
|
||||
static int titan_read_config(struct pci_bus *bus, unsigned int devfn, int reg,
|
||||
int size, u32 * val)
|
||||
{
|
||||
uint32_t address, tmp;
|
||||
int dev, busno, func;
|
||||
|
||||
busno = bus->number;
|
||||
dev = PCI_SLOT(devfn);
|
||||
func = PCI_FUNC(devfn);
|
||||
|
||||
address = (busno << 16) | (dev << 11) | (func << 8) |
|
||||
(reg & 0xfc) | 0x80000000;
|
||||
|
||||
|
||||
/* start the configuration cycle */
|
||||
ocd_writel(address, TITAN_PCI_0_CONFIG_ADDRESS);
|
||||
tmp = ocd_readl(TITAN_PCI_0_CONFIG_DATA) >> ((reg & 3) << 3);
|
||||
|
||||
switch (size) {
|
||||
case 1:
|
||||
tmp &= 0xff;
|
||||
case 2:
|
||||
tmp &= 0xffff;
|
||||
}
|
||||
*val = tmp;
|
||||
|
||||
return PCIBIOS_SUCCESSFUL;
|
||||
}
|
||||
|
||||
static int titan_write_config(struct pci_bus *bus, unsigned int devfn, int reg,
|
||||
int size, u32 val)
|
||||
{
|
||||
uint32_t address;
|
||||
int dev, busno, func;
|
||||
|
||||
busno = bus->number;
|
||||
dev = PCI_SLOT(devfn);
|
||||
func = PCI_FUNC(devfn);
|
||||
|
||||
address = (busno << 16) | (dev << 11) | (func << 8) |
|
||||
(reg & 0xfc) | 0x80000000;
|
||||
|
||||
/* start the configuration cycle */
|
||||
ocd_writel(address, TITAN_PCI_0_CONFIG_ADDRESS);
|
||||
|
||||
/* write the data */
|
||||
switch (size) {
|
||||
case 1:
|
||||
ocd_writeb(val, TITAN_PCI_0_CONFIG_DATA + (~reg & 0x3));
|
||||
break;
|
||||
|
||||
case 2:
|
||||
ocd_writew(val, TITAN_PCI_0_CONFIG_DATA + (~reg & 0x2));
|
||||
break;
|
||||
|
||||
case 4:
|
||||
ocd_writel(val, TITAN_PCI_0_CONFIG_DATA);
|
||||
break;
|
||||
}
|
||||
|
||||
return PCIBIOS_SUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Titan PCI structure
|
||||
*/
|
||||
struct pci_ops titan_pci_ops = {
|
||||
titan_read_config,
|
||||
titan_write_config,
|
||||
};
|
@@ -1,67 +0,0 @@
|
||||
/*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*
|
||||
* Copyright (C) 2004 by Ralf Baechle (ralf@linux-mips.org)
|
||||
*/
|
||||
#include <linux/init.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/pci.h>
|
||||
#include <asm/titan_dep.h>
|
||||
|
||||
extern struct pci_ops titan_pci_ops;
|
||||
|
||||
static struct resource py_mem_resource = {
|
||||
.start = 0xe0000000UL,
|
||||
.end = 0xe3ffffffUL,
|
||||
.name = "Titan PCI MEM",
|
||||
.flags = IORESOURCE_MEM
|
||||
};
|
||||
|
||||
/*
|
||||
* PMON really reserves 16MB of I/O port space but that's stupid, nothing
|
||||
* needs that much since allocations are limited to 256 bytes per device
|
||||
* anyway. So we just claim 64kB here.
|
||||
*/
|
||||
#define TITAN_IO_SIZE 0x0000ffffUL
|
||||
#define TITAN_IO_BASE 0xe8000000UL
|
||||
|
||||
static struct resource py_io_resource = {
|
||||
.start = 0x00001000UL,
|
||||
.end = TITAN_IO_SIZE - 1,
|
||||
.name = "Titan IO MEM",
|
||||
.flags = IORESOURCE_IO,
|
||||
};
|
||||
|
||||
static struct pci_controller py_controller = {
|
||||
.pci_ops = &titan_pci_ops,
|
||||
.mem_resource = &py_mem_resource,
|
||||
.mem_offset = 0x00000000UL,
|
||||
.io_resource = &py_io_resource,
|
||||
.io_offset = 0x00000000UL
|
||||
};
|
||||
|
||||
static char ioremap_failed[] __initdata = "Could not ioremap I/O port range";
|
||||
|
||||
static int __init pmc_yosemite_setup(void)
|
||||
{
|
||||
unsigned long io_v_base;
|
||||
|
||||
io_v_base = (unsigned long) ioremap(TITAN_IO_BASE, TITAN_IO_SIZE);
|
||||
if (!io_v_base)
|
||||
panic(ioremap_failed);
|
||||
|
||||
set_io_port_base(io_v_base);
|
||||
py_controller.io_map_base = io_v_base;
|
||||
TITAN_WRITE(RM9000x2_OCD_LKM7, TITAN_READ(RM9000x2_OCD_LKM7) | 1);
|
||||
|
||||
ioport_resource.end = TITAN_IO_SIZE - 1;
|
||||
|
||||
register_pci_controller(&py_controller);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
arch_initcall(pmc_yosemite_setup);
|
新增問題並參考
封鎖使用者