5 Replies Latest reply on Aug 20, 2015 2:08 PM by WilliP

    Problems with watchdog in 1.5


      I've been trying to enable the watchdog timer in Yocto build for IOTDK 1.5.  I've used menuconfig to enable the watchdog driver (ie6xx) and rebuild it and the ie6xx_wdt module is built and included in the image.  When I then boot the SD with this image and then start the driver, the /dev/watchdog is not created.  From lsmod I can see that the ie6xx_wdt driver is loaded, but I can't find any reason why it didn't seem to start correctly.


      I have stopped it, restarted it, and lsmod continues to show 0 "used by".  


      Any guesses for what I did wrong?



        • 1. Re: Problems with watchdog in 1.5

          Hi WilliP,


          Are you changing the defconfig for the .config created by the menuconfig?

          Which BSP version are you using? Are you using the 1.0.1? BSP Versions - Intel® Download Center




          • 2. Re: Problems with watchdog in 1.5

            I'm building using Brenden's IOTDK 1.5 build (Based on Dizzy): IoT - Creating a Yocto image for the Intel® Galileo board using split layers | Intel® Developer Zone


            Yes, I use menuconfig to setup the option then copy the .config to defconfig, or more specifically (from the build directory):.


            cp   ./tmp/work/quark-poky-linux/linux-yocto-quark/3.8-r0/Linux-quark-standard-build/.config ../meta-intel-quark/recipes-kernel/Linux/files/quark.cfg



            • 3. Re: Problems with watchdog in 1.5

              I have tried a number of methods to load ie6xx_wdt, but so far to success.  The module will load, but it doesn't do anything - no messages, no /dev/watchdog. If I manually create the devices, there is no response (so it seems the module is not initializing at all).  I've tried to build the module as internal and a module, same result in all cases.  If I compare the module with one built using the daisy build, everything looks the same (lsmod reports the same module size).


              Has anybody managed to use the watchdog timer in the split build?



              • 4. Re: Problems with watchdog in 1.5

                Hi Bill,


                You entered:

                The module will load, but it doesn't do anything

                How are you loading the module? Are you using modprobe?

                You said you built an image with the module as internal and as a module, are you cleaning the folders or starting from scratch before building the image? Or are you using the same files and folders?



                • 5. Re: Problems with watchdog in 1.5

                  I have resolved the issue and ie6xx_wdt watchdog is now working.  The issue was that the patch:

                  meta-intel-iot-devkit - Intel IoT Developer Kit metadata

                  needs to be added to the split layers build.


                  I was originally thinking that since much of the enabling of the watchdog was added to Linux v3.8, that it only needed to be enabled via .config but the issue came back to one line of code needed to be added to drivers/mfd/lpc_sch.c to detect the Quark - and that comes from this patch.


                  For users of the Yocto 1.5 split layers build, you will need to apply the above patch to the meta-intel-quark layer and then bitbake.  Use the wic script and dd the image to an SD and the /dev/watchdog and /dev/watchdog0 devices will appear.


                  In my case, I also added the driver to the KERNEL_MODULE_AUTOLOAD list in Linux-yocto-quark_3.8.bb:

                  KERNEL_MODULE_AUTOLOAD += ie6xx_wdt

                  So that the driver is automatically started during boot.