diff options
Diffstat (limited to 'target/linux/adm5120-2.6/files/arch/mips/pci')
-rw-r--r-- | target/linux/adm5120-2.6/files/arch/mips/pci/ops-adm5120.c | 10 | ||||
-rw-r--r-- | target/linux/adm5120-2.6/files/arch/mips/pci/pci-adm5120.c | 31 |
2 files changed, 24 insertions, 17 deletions
diff --git a/target/linux/adm5120-2.6/files/arch/mips/pci/ops-adm5120.c b/target/linux/adm5120-2.6/files/arch/mips/pci/ops-adm5120.c index 80b8531eab..91dae89999 100644 --- a/target/linux/adm5120-2.6/files/arch/mips/pci/ops-adm5120.c +++ b/target/linux/adm5120-2.6/files/arch/mips/pci/ops-adm5120.c @@ -1,6 +1,8 @@ /* * Copyright (C) ADMtek Incorporated. * Copyright (C) 2005 Jeroen Vreeken (pe1rxq@amsat.org) + * Copyright (C) 2007 Gabor Juhos <juhosg@freemail.hu> + * Copyright (C) 2007 OpenWrt.org */ #include <linux/autoconf.h> @@ -9,11 +11,13 @@ #include <linux/kernel.h> #include <linux/init.h> -volatile u32* pci_config_address_reg = (volatile u32*)KSEG1ADDR(0x115ffff0); -volatile u32* pci_config_data_reg = (volatile u32*)KSEG1ADDR(0x115ffff8); +#include <adm5120_defs.h> + +volatile u32* pci_config_address_reg = (volatile u32*)KSEG1ADDR(ADM5120_PCICFG_ADDR); +volatile u32* pci_config_data_reg = (volatile u32*)KSEG1ADDR(ADM5120_PCICFG_DATA); #define PCI_ENABLE 0x80000000 - + static int pci_config_read(struct pci_bus *bus, unsigned int devfn, int where, int size, uint32_t *val) { diff --git a/target/linux/adm5120-2.6/files/arch/mips/pci/pci-adm5120.c b/target/linux/adm5120-2.6/files/arch/mips/pci/pci-adm5120.c index bf46cc142a..78de001c50 100644 --- a/target/linux/adm5120-2.6/files/arch/mips/pci/pci-adm5120.c +++ b/target/linux/adm5120-2.6/files/arch/mips/pci/pci-adm5120.c @@ -1,6 +1,8 @@ /* * Copyright (C) ADMtek Incorporated. * Copyright (C) 2005 Jeroen Vreeken (pe1rxq@amsat.org) + * Copyright (C) 2007 Gabor Juhos <juhosg@freemail.hu> + * Copyright (C) 2007 OpenWrt.org */ #include <linux/autoconf.h> @@ -9,10 +11,10 @@ #include <linux/kernel.h> #include <linux/init.h> -extern struct pci_ops adm5120_pci_ops; +#include <adm5120_info.h> +#include <adm5120_defs.h> -#define ADM5120_CODE 0x12000000 -#define ADM5120_CODE_PQFP 0x20000000 +extern struct pci_ops adm5120_pci_ops; #define PCI_CMM_IOACC_EN 0x1 #define PCI_CMM_MEMACC_EN 0x2 @@ -24,16 +26,16 @@ extern struct pci_ops adm5120_pci_ops; struct resource pci_io_resource = { - .name = "PCI IO space", - .start = 0x11500000, - .end = 0x115ffff0-1, + .name = "ADM5120 PCI I/O", + .start = ADM5120_PCIIO_BASE, + .end = ADM5120_PCICFG_ADDR-1, .flags = IORESOURCE_IO }; struct resource pci_mem_resource = { - .name = "PCI memory space", - .start = 0x11400000, - .end = 0x11500000, + .name = "ADM5120 PCI MEM", + .start = ADM5120_PCIMEM_BASE, + .end = ADM5120_PCIIO_BASE-1, .flags = IORESOURCE_MEM }; @@ -71,12 +73,13 @@ int pcibios_plat_dev_init(struct pci_dev *dev) static int __init adm5120_pci_setup(void) { + int pci_bios; - if ((*(volatile u32 *)(KSEG1ADDR(ADM5120_CODE))) & ADM5120_CODE_PQFP) { - printk("System has no PCI BIOS (ADM5120 PQFP)\n"); + pci_bios = adm5120_has_pci(); + + printk("adm5120: system has %sPCI BIOS\n", pci_bios ? "" : "no "); + if (pci_bios == 0) return 1; - } - printk("System has PCI BIOS (ADM5120 BGA)\n"); /* Avoid ISA compat ranges. */ PCIBIOS_MIN_IO = 0x00000000; @@ -84,7 +87,7 @@ static int __init adm5120_pci_setup(void) /* Set I/O resource limits. */ ioport_resource.end = 0x1fffffff; - iomem_resource.end = 0xffffffff; + iomem_resource.end = 0xffffffff; register_pci_controller(&adm5120_controller); return 0; |