diff options
3 files changed, 29 insertions, 48 deletions
| diff --git a/target/linux/adm5120-2.6/files/arch/mips/adm5120/setup.c b/target/linux/adm5120-2.6/files/arch/mips/adm5120/setup.c index 23e668411..1b99d7799 100644 --- a/target/linux/adm5120-2.6/files/arch/mips/adm5120/setup.c +++ b/target/linux/adm5120-2.6/files/arch/mips/adm5120/setup.c @@ -14,17 +14,12 @@  #include <asm/io.h>  #include <asm/time.h> +#include <adm5120_info.h> +  #define ADM5120_SOFTRESET	0x12000004  #define STATUS_IE		0x00000001  #define ALLINTS (IE_IRQ0 | IE_IRQ5 | STATUS_IE) -#define ADM5120_CODEREG		0x12000000 -#define ADM5120_CPU_CLK_MASK	0x00300000 -#define ADM5120_CPU_CLK_175	0x00000000 -#define ADM5120_CPU_CLK_200	0x00100000 -#define ADM5120_CPU_CLK_225	0x00200000 -#define ADM5120_CPU_CLK_250	0x00300000 -  void  mips_time_init(void);  extern unsigned int mips_counter_frequency; @@ -47,30 +42,9 @@ void adm5120_power_off(void)          adm5120_halt();  } -void __init mips_time_init(void) +void __init adm5120_time_init(void)  { -	u32 clock; - -	clock = *(u32*)KSEG1ADDR(ADM5120_CODEREG); - -	switch (clock & ADM5120_CPU_CLK_MASK) { -		case ADM5120_CPU_CLK_175: -			mips_counter_frequency = 87500000; -			printk("CPU clock: 175MHz\n"); -			break; -		case ADM5120_CPU_CLK_200: -			mips_counter_frequency = 100000000; -			printk("CPU clock: 200MHz\n"); -			break; -		case ADM5120_CPU_CLK_225: -			mips_counter_frequency = 112500000; -			printk("CPU clock: 225MHz\n"); -			break; -		case ADM5120_CPU_CLK_250: -			mips_counter_frequency = 125000000; -			printk("CPU clock: 250MHz\n"); -			break; -	} +	mips_counter_frequency = adm5120_info.cpu_speed >> 1;  }  void __init plat_timer_setup(struct irqaction *irq) @@ -85,7 +59,7 @@ void __init plat_mem_setup(void)  {  	printk(KERN_INFO "ADM5120 board setup\n"); -	board_time_init = mips_time_init; +	board_time_init = adm5120_time_init;  	//board_timer_setup = mips_timer_setup;  	_machine_restart = adm5120_restart; 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 80b8531ea..91dae8999 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 bf46cc142..78de001c5 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; | 
