> diff -Nupr linux-2.6.orig/arch/ppc/kernel/head_4xx.S
>  linux-2.6/arch/ppc/kernel/head_4xx.S
> --- linux-2.6.orig/arch/ppc/kernel/head_4xx.S?? 2005-05-06
> 05:03:55.000000000 +0900
>  +++ linux-2.6/arch/ppc/kernel/head_4xx.S??????? 2005-05-07 
> 05:03:24.000000000 +0900
>  @@ -430,27 +430,24 @@ label:
>

Any reason you moved this code into DecrementerHandler?

> ? /* 0x1000 - Programmable Interval Timer (PIT) Exception */
>  ? ????? START_EXCEPTION(0x1000, Decrementer)
>  -?????? NORMAL_EXCEPTION_PROLOG
> -?????? lis???? r0,TSR_PIS at h
> -?????? mtspr?? SPRN_TSR,r0???? ??????? /* Clear the PIT exception */
>  -?????? addi??? r3,r1,STACK_FRAME_OVERHEAD
> -?????? EXC_XFER_LITE(0x1000, timer_interrupt)
> +?????? b??? DecrementerHandler
>
> ? #if 0
>  ? /* NOTE:
>  - * FIT and WDT handlers are not implemented yet.
>  + * FIT handler is not implemented yet.
>  ?? */
>
> ? /* 0x1010 - Fixed Interval Timer (FIT) Exception
>  ? */
>  ? ????? STND_EXCEPTION(0x1010,? FITException,?? ??????? 
> UnknownException)
>
> -/* 0x1020 - Watchdog Timer (WDT) Exception
>  -*/
>  -
>  -?????? CRITICAL_EXCEPTION(0x1020, WDTException, UnknownException)
> ? #endif
>
> +/* 0x1020 - Watchdog Timer (WDT) Exception
>  + */
>  +?????? START_EXCEPTION(0x1020, WDTException)
> +?????? b??? WatchDogHandler
> +
>  ? /* 0x1100 - Data TLB Miss Exception
>  ?? * As the name implies, translation is not in the MMU, so search the
>  ?? * page tables and fix it.? The only purpose of this function is to
>  @@ -732,6 +729,13 @@ label:
>  ? ????? ??????? (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), \
>  ? ????? ??????? NOCOPY, crit_transfer_to_handler, ret_from_crit_exc)
>
> +DecrementerHandler:
> +?????? NORMAL_EXCEPTION_PROLOG
> +?????? lis??? r0,TSR_PIS at h
> +?????? mtspr??? SPRN_TSR,r0??????? /* Clear the PIT exception */
>  +?????? addi??? r3,r1,STACK_FRAME_OVERHEAD
> +?????? EXC_XFER_LITE(0x1000, timer_interrupt)
> +
>  ? /*
>  ?? * The other Data TLB exceptions bail out to this point
>  ?? * if they can't resolve the lightweight TLB fault.
>  @@ -804,6 +808,19 @@ finish_tlb_load:
> ? ????? PPC405_ERR77_SYNC
> ? ????? rfi???? ??????? ??????? /* Should sync shadow TLBs */
>  ? ????? b?????? .?????? ??????? /* prevent prefetch past rfi */
>  +/*
>  + * WatchDog Exception
>  + */
>  +WatchDogHandler:
> +?????? CRITICAL_EXCEPTION_PROLOG;
> +?????? addi??? r3,r1,STACK_FRAME_OVERHEAD;
> +#if defined(CONFIG_BOOKE_WDT)
> +?????? EXC_XFER_TEMPLATE(booke_wdt_exception, 0x1022, (MSR_KERNEL &
> ~(MSR_ME|MSR_DE|MSR_CE)),NOCOPY, crit_transfer_to_handler,
>  ret_from_crit_exc)
> +
>  +#else
>  +?????? EXC_XFER_TEMPLATE(UnknownException, 0x1022, (MSR_KERNEL &
> ~(MSR_ME|MSR_DE|MSR_CE)),NOCOPY, crit_transfer_to_handler,
>  ret_from_crit_exc)
> +#endif? /*? CONFIG_BOOKE_WDT? */
>  +
>
> ? /* extern void giveup_fpu(struct task_struct *prev)
>  ?? *



Reply via email to