HiDomingos

On 06/08/11 03:13, dhl...@sapo.pt wrote:
I am work around NetBurner MOD5272, with kernel 2.4.34.5-uc0,
uClinux-dist-20110603 and m68k-uclinux-tools.

When i configure in the kernell:
       ...........
       [ * ] ColdFireWatchdog Timer Support
       .........

I have some make ERROS:
       ...........
       mcfwatchdog.c: In function 'watchdog_timeout':
       mcfwatchdog.c:251: warning: implicit declaration of function 'mcf_setimr'
       mcfwatchdog.c:251: warning: implicit declaration of function 'mcf_getimr'
       mcfwatchdog.c:256: error: 'MCFSIM_SWSR' undeclared (first use in
this function)
       mcfwatchdog.c:256: error: (Each undeclared identifier is
reported only once
       mcfwatchdog.c:256: error: for each function it appears in.)
       make[4]: *** [mcfwatchdog.o] Error 1
       make[4]: Leaving directory
`/home/labo/uClinux-dist/linux-2.4.x/drivers/char'
       make[3]: *** [first_rule] Error 2
       make[3]: Leaving directory
`/home/labo/uClinux-dist/linux-2.4.x/drivers/char'
       make[2]: *** [_subdir_char] Error 2
       make[2]: Leaving directory `/home/labo/uClinux-dist/linux-2.4.x/drivers'
       make[1]: *** [_dir_drivers] Error 2
       make[1]: Leaving directory `/home/labo/uClinux-dist/linux-2.4.x'
       make: *** [linux] Error 1
       ..........

Digging in source file
(uClinux-dist/linux-2.4.x/drivers/char/mcfwatchdog.c) i found in
function watchdog_timeout(....):
The compiler really need the defenition of  MCFSIM_SWSR, mcf_setimr ()
and mcf_getimr.
I thing this is a bug, because in other funtion of file M5272 always
have a diferent way of code, without the previous defines
(MCFSIM_SWSR, mcf_setimr () and mcf_getimr ).

What i I did was: comment the part of the funtion that needs the
(MCFSIM_SWSR, mcf_setimr () and mcf_getimr()):
line 236
       ..........
       #else
+         printk("mcfwatchdog: expired!\n");
+         dump(fp);
+    #endif /* CONFIG_OLDMASK */

*      //#ifdef RESET_ON_SWTR
*      //       /* nothing will be done... reset will occour */
*     //#else  /* RESET_ON_SWTR */
*      //       // lev7 interrupt is used.
*      //       if(++watchdog_overflows>= 10) {
*      //
*     //          printk("mcfwatchdog: expired!\n");
*      //#ifndef MODULE
*      //         dump(fp);
*      //#endif
*      //         mcf_setimr(mcf_getimr() | MCFSIM_IMR_SWD);
*      //         HARD_RESET_NOW();
*      //         for (;;) ;  // hang until reboot
*      //       } else {
*      //         volatile unsigned char *mbar = (volatile unsigned char *)
MCF_MBAR;
*      //         *(mbar + MCFSIM_SWSR) = 0x55;
*      //         *(mbar + MCFSIM_SWSR) = 0xaa; // kick watchdog
*      //       }
*      //#endif /* RESET_ON_SWTR */
+     #endif /* CONFIG_OLDMASK */
         }
         ...........

Ok after this make witout erros, and in the boot: mcfwatchdog:
initializing at vector=92.

I know that is not the correct way to solve the error. Probably this
cause problems when one watchdog ISR occur.
But I hope it helps someone to solve the problem.

Has anyone had or solved this problem?

At some point in time this driver must have worked on 5272 platforms.
I would suggest going back through the CVS history and seeing what
changed in it to figure out where it was broken for the 5272.

See here:

http://cvs.uclinux.org/cgi-bin/cvsweb.cgi/uClinux-2.4.x/drivers/char/mcfwatchdog.c

Regards
Greg


------------------------------------------------------------------------
Greg Ungerer  --  Principal Engineer        EMAIL:     g...@snapgear.com
SnapGear Group, McAfee                      PHONE:       +61 7 3435 2888
8 Gardner Close                             FAX:         +61 7 3217 5323
Milton, QLD, 4064, Australia                WEB: http://www.SnapGear.com
_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to