This patch had updated init.c for vr41xx. - add iomem resource init - add CP0 timer init - add clock frequency calculation Signed-off-by: Yoichi Yuasa <yuasa@xxxxxxxxxxxxxx> diff -urN -X dontdiff c-orig/arch/mips/vr41xx/common/init.c c/arch/mips/vr41xx/common/init.c --- c-orig/arch/mips/vr41xx/common/init.c Thu May 27 02:11:11 2004 +++ c/arch/mips/vr41xx/common/init.c Sat Apr 9 23:42:40 2005 @@ -1,7 +1,7 @@ /* * init.c, Common initialization routines for NEC VR4100 series. * - * Copyright (C) 2003-2004 Yoichi Yuasa <yuasa@xxxxxxxxxxxxxx> + * Copyright (C) 2003-2005 Yoichi Yuasa <yuasa@xxxxxxxxxxxxxx> * * 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 @@ -18,9 +18,45 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/init.h> +#include <linux/ioport.h> +#include <linux/irq.h> #include <linux/string.h> #include <asm/bootinfo.h> +#include <asm/time.h> +#include <asm/vr41xx/vr41xx.h> + +#define IO_MEM_RESOURCE_START 0UL +#define IO_MEM_RESOURCE_END 0x1fffffffUL + +static void __init iomem_resource_init(void) +{ + iomem_resource.start = IO_MEM_RESOURCE_START; + iomem_resource.end = IO_MEM_RESOURCE_END; +} + +static void __init setup_timer_frequency(void) +{ + unsigned long tclock; + + tclock = vr41xx_get_tclock_frequency(); + if (current_cpu_data.processor_id == PRID_VR4131_REV2_0 || + current_cpu_data.processor_id == PRID_VR4131_REV2_1) + mips_hpt_frequency = tclock / 2; + else + mips_hpt_frequency = tclock / 4; +} + +static void __init setup_timer_irq(struct irqaction *irq) +{ + setup_irq(TIMER_IRQ, irq); +} + +static void __init timer_init(void) +{ + board_time_init = setup_timer_frequency; + board_timer_setup = setup_timer_irq; +} void __init prom_init(void) { @@ -35,6 +71,12 @@ if (i < (argc - 1)) strcat(arcs_cmdline, " "); } + + vr41xx_calculate_clock_frequency(); + + timer_init(); + + iomem_resource_init(); } unsigned long __init prom_free_prom_memory (void) diff -urN -X dontdiff c-orig/include/asm-mips/vr41xx/vr41xx.h c/include/asm-mips/vr41xx/vr41xx.h --- c-orig/include/asm-mips/vr41xx/vr41xx.h Sat Apr 9 23:42:21 2005 +++ c/include/asm-mips/vr41xx/vr41xx.h Sat Apr 9 23:43:22 2005 @@ -84,7 +84,7 @@ #define INT2_CASCADE_IRQ MIPS_CPU_IRQ(4) #define INT3_CASCADE_IRQ MIPS_CPU_IRQ(5) #define INT4_CASCADE_IRQ MIPS_CPU_IRQ(6) -#define MIPS_COUNTER_IRQ MIPS_CPU_IRQ(7) +#define TIMER_IRQ MIPS_CPU_IRQ(7) /* SYINT1 Interrupt Numbers */ #define SYSINT1_IRQ_BASE 8