On Thu, Dec 07, 2006 at 06:22:34PM +0300, Vitaly Wool wrote: > Index: linux-mips.git/arch/mips/philips/pnx8550/stb810/Makefile > =================================================================== > --- /dev/null 1970-01-01 00:00:00.000000000 +0000 > +++ linux-mips.git/arch/mips/philips/pnx8550/stb810/Makefile 2006-12-07 18:21:04.000000000 +0300 > @@ -0,0 +1,4 @@ > + > +# Makefile for the Philips STB810 Board. > + > +lib-y := prom_init.o board_setup.o irqmap.o > Index: linux-mips.git/arch/mips/philips/pnx8550/stb810/board_setup.c > =================================================================== > --- /dev/null 1970-01-01 00:00:00.000000000 +0000 > +++ linux-mips.git/arch/mips/philips/pnx8550/stb810/board_setup.c 2006-12-07 18:21:04.000000000 +0300 > @@ -0,0 +1,56 @@ > +/* > + * STB810 specific board startup routines. > + * > + * Based on the arch/mips/philips/pnx8550/jbs/board_setup.c > + * > + * Author: MontaVista Software, Inc. > + * source@xxxxxxxxxx > + * > + * Copyright 2005 MontaVista Software Inc. > + * > + * 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. > + */ > + > +#include <linux/init.h> > +#include <linux/sched.h> > +#include <linux/ioport.h> > +#include <linux/mm.h> > +#include <linux/console.h> > +#include <linux/mc146818rtc.h> > +#include <linux/delay.h> > + > +#include <asm/cpu.h> > +#include <asm/bootinfo.h> > +#include <asm/irq.h> > +#include <asm/mipsregs.h> > +#include <asm/reboot.h> > +#include <asm/pgtable.h> > + > +#include <glb.h> > + > +/* CP0 hazard avoidance. */ > +#define BARRIER __asm__ __volatile__(".set noreorder\n\t" \ > + "nop; nop; nop; nop; nop; nop;\n\t" \ > + ".set reorder\n\t") > + > +void __init board_setup(void) > +{ > + unsigned long config0, configpr; > + > + config0 = read_c0_config(); > + > + /* clear all three cache coherency fields */ > + config0 &= ~(0x7 | (7<<25) | (7<<28)); > + config0 |= (CONF_CM_DEFAULT | (CONF_CM_DEFAULT<<25) | > + (CONF_CM_DEFAULT<<28)); > + write_c0_config(config0); > + BARRIER; > + > + configpr = read_c0_config7(); > + configpr |= (1<<19); /* enable tlb */ > + write_c0_config7(configpr); > + BARRIER; > +} You really need that hazard barrier? Chances are you can get away without a hazard barrier I guess. > Index: linux-mips.git/arch/mips/philips/pnx8550/stb810/irqmap.c > =================================================================== > --- /dev/null 1970-01-01 00:00:00.000000000 +0000 > +++ linux-mips.git/arch/mips/philips/pnx8550/stb810/irqmap.c 2006-12-07 18:21:04.000000000 +0300 > +char irq_tab_jbs[][5] __initdata = { > + [8] = { -1, PNX8550_INT_PCI_INTA, 0xff, 0xff, 0xff}, > + [9] = { -1, PNX8550_INT_PCI_INTA, 0xff, 0xff, 0xff}, > + [10] = { -1, PNX8550_INT_PCI_INTA, 0xff, 0xff, 0xff}, Coding style, indent with tabs. > Index: linux-mips.git/arch/mips/kernel/head.S > =================================================================== > --- linux-mips.git.orig/arch/mips/kernel/head.S 2006-12-07 18:20:47.000000000 +0300 > +++ linux-mips.git/arch/mips/kernel/head.S 2006-12-07 18:21:04.000000000 +0300 > @@ -138,7 +138,7 @@ > EXPORT(stext) # used for profiling > EXPORT(_stext) > > -#if defined(CONFIG_QEMU) || defined(CONFIG_MIPS_SIM) > +#if defined(CONFIG_QEMU) || defined(CONFIG_MIPS_SIM) || defined(CONFIG_PNX8550_STB810) Your firmware is really so broken it needs this? > Index: linux-mips.git/arch/mips/configs/pnx8550-stb810_defconfig > =================================================================== > --- /dev/null 1970-01-01 00:00:00.000000000 +0000 > +++ linux-mips.git/arch/mips/configs/pnx8550-stb810_defconfig 2006-12-07 18:21:04.000000000 +0300 > @@ -0,0 +1,1777 @@ > +# > +# Automatically generated make config: don't edit > +# Linux kernel version: 2.6.19-rc5 > +# Wed Nov 8 13:46:57 2006 > +# > +CONFIG_ARM=y LOL. Doesn't look quite right. Let's see if you find out why ;-) Ralf