Hello ! > > In "tlb_init" function, cp0 WIRED register is set > to > > zero, therefore the call to "local_flush_tlb_all" > > flush all TLB entries which were mapping my kernel > > in the 3 first entries. Why is this necessary ? > > Setting WIRED to zero is just part of kernel > start-up initialization. > > In 2.4 it is done before board setup routine, which > allows board > to setup certain wired mapping. > > In 2.6 it is done after board setup routine. You > are screwed. :) I think > this needs to be fixed. A couple of boards should > be broken because of this. > Well, you can again setup the wired tlb entries later. For example, in case of Ocelot3 board (setup.c code), the wired tlb entries are again created in the time_init function. void momenco_time_init(void) { setup_wired_tlb_entries(); .... And it is set for the first time in the board setup function: static int __init momenco_ocelot_3_setup(void) { unsigned int tmpword; board_time_init = momenco_time_init; _machine_restart = momenco_ocelot_restart; _machine_halt = momenco_ocelot_halt; _machine_power_off = momenco_ocelot_power_off; /* Wired TLB entries */ setup_wired_tlb_entries(); .... Maybe you can do the same for this board as well Thanks Manish Lachwani ===== http://www.koffee-break.com