Hi, We able to integrate u-boot with Linux along with Watchdog enabled for PPC440gx processor. Here I am giving the modification we did to make it work.
The intention to write this mail is to provide a reference code for the people who wants to use Watchdog feature with PPC440gx. We have used u-boot-1.1.4 and Linux Kernel of version 2.6.16 on PPC440gx processor. Steps that we have taken: 1. Enabled 'CONFIG_WATCHDOG' flag code in u-boot code. 2. Modified the 'kernel-2.6.16.1-ts.amcc440gx.basic.1\arch\ppc\kernel\time.c' (Modified code starts with 'Sachin' tag) void reset_watchdog(void) { /* Sachin: Resetting Bit#0 and Bit#1 mtspr(SPRN_TSR, 0xc0000000); /*Sachin: added - end */ } void timer_interrupt(struct pt_regs * regs) { int next_dec; unsigned long cpu = smp_processor_id(); unsigned jiffy_stamp = last_jiffy_stamp(cpu); extern void do_IRQ(struct pt_regs *); /* Sachin: Reset the Watchdog timer */ reset_watchdog(); /*Sachin: added - end */ : : : : if (ppc_md.heartbeat && !ppc_md.heartbeat_count--) ppc_md.heartbeat(); irq_exit(); } 3. Modified the 'kernel-2.6.16.1-ts.amcc440gx.basic.1\arch\ppc\syslib\ibm44x_common.c': void __init ibm44x_calibrate_decr(unsigned int freq) { unsigned long value; tb_ticks_per_jiffy = freq / HZ; tb_to_us = mulhwu_scale_factor(freq, 1000000); : : : /*Sachin: added - start */ value = mfspr(SPRN_TCR); value |= TCR_DIE; mtspr(SPRN_TCR, value); /*Sachin: added - end */ //mtspr(SPRN_TCR, TCR_DIE); } Thanks. Regards, Sachin Rane _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot