This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA2PXEVM: Enabling Watchdog timer in hlos use case



Hello,

I want to enable watchdog timer for an hlos use case to reset when the application is stuck due to software or hardware fault. Can someone please guide with this.

Thanks in advance!

Best Regards
Chinmayee Rao

  • Hi Chinmayee,

    If you search your boot log then you should be able to see a trace like below:

    "[    7.784962] omap_wdt: OMAP Watchdog Timer Rev 0x01: initialimeout 60 sec"

    By default there is already a watchdog running in Linux with timeout of 60 seconds. Is that good enough for you?

    Best Regards,
    Keerthy

  • Hi Keerthy,

    Thank you for the reply.

    In my boot log I am not finding "omap_wdt: OMAP Watchdog Timer Rev 0x01: initialimeout 60 sec".
    Where should I enable it?
    And can we configure timeout to less than 60 seconds?

    Best Regards
    Chinmayee Rao

  • Hi Chinmayee,

    DISABLE_COMPLETE(wdt2);

    Can you remove that from: dra76-evm-infoadas.dts file that should enable the watchdog and you should
    be able to see that print.

    Also default is 60 Seconds and you should be able to change that in:

    drivers/watchdog/omap_wdt.h in your Linux source code:

    #define TIMER_MARGIN_DEFAULT 60

    to the value you want.

    Best Regards,
    Keerthy

  • Hi Keerthy,

    I am working along with Chinmayee.

    We have removed the DISABLE_COMPLETE(wdt2); from dra76-evm-infoadas.dts and is able to list in /dev/watchdog and /dev/watchdog0. Also the kernel message omap_wdt: OMAP Watchdog Timer Rev 0x01: initialimeout 60 sec is seen now.


    Our aim is to reset the board if the application is stuck at some point.

    I had some doubts regarding these.

    1. What should happen if we change TIMER_MARGIN_DEFAULT to 4 sec ? 
    2. Does it affect only the A15 core or other cores also ?
    3. What can we do to reset the board if the application (apps.out) gets hanged at IPU, DSP cores, etc.
    4. Do we need any modifications in the usecase so that it can help reset when it gets hanged at cores other than A15 ?


    Regards,
    Padmesh

  • Padmesh,

    1) Watchdog should be pet every 4 Seconds.
    2) System watchdog like the one specified should reset the soc.
    3) & 4) I will come back.

    I want to understand your use case better. I was under the impression that application was run on HLOS
    i.e Linux. Can you give more details on the use case?

    - Keerthy

  • Hi Keerthy,

    Our usecase is as follows:

    NullSource (A15) -> Decode -> VPE -> Sync -> Dup -> Gate_Alg1 -> Alg1 (DSP1) -> Display_HDMI
                                  
    Dup -> Gate_Alg2 -> Alg2 (DSP1) -> SgxFrmcpy (A15) -> Display_LCD
     
    Dup -> Alg3 (DSP1)
     
    //Dynamic overlays
    ssdOverlayLink (IPU1_0) -> Display_Grpx



    Our main purpose for using watchdog is to reset the system when code is stuck somewhere for more than 4secs.

    So what specific function calls or system calls does the watchdog need to reset the soc?




    Best Regards,
    Chinmayee
  • Hi Chinmayee/Padmesh,

    There is only one system level watchdog and now that Linux owns it then it will reset only
    when A15 hangs and not when other cores hang.

    That said: our remoteproc driver contains kind of soft watchdog support for the remoteprocs, including DSP. CONFIG_OMAP_REMOTEPROC_WATCHDOG can be used to enable it, and basically it is just a soft timer that the DSP would pet as if it was a watchdog. When it expires, it will interrupt a15 kernel driver and it will decide what to do with it.

    Source: drivers/remoteproc/omap_remoteproc.c

    Best Regards,
    Keerthy

  • Hi Keerthy,

    As mentioned,

    1. DISABLE_COMPLETE(wdt2) is removed from dt
    2. And CONFIG_OMAP_REMOTEPROC_WATCHDOG is also enabled

    But when we crash the ipu or dsp firmwares purposefully, the SoC is not reset.

    I suspect, do we need to remove the /delete-property/ watchdog-timers; line from the dra76-evm-infoadas.dts

    Our current dt is having the following configuration,

    #include "dra76-evm.dts"
    
    #define DISABLE_PRCM(label) &label { ti,no-idle; ti,no-reset-on-init; }
    #define DISABLE_COMPLETE(label) &label { status = "disabled"; ti,no-idle; ti,no-reset-on-init; }
    #define LATE_ATTACH(label) &label { ti,late-attach; ti,no-idle; ti,no-reset-on-init; }
    
    / {
    	chosen {
    		bootargs = "console=ttyO0,115200n8 elevator=noop root=/dev/mmcblk0p1 rw rootwait earlyprintk fixrtc omapdrm.num_crtc=2 consoleblank=0 cma=64M mem=512M rootfstype=ext4 snd.slots_reserved=1,1 loglevel=0 clk_ignore_unused";
    	};
    };
    
    /* modules used by BIOS, disable from Linux */
    DISABLE_COMPLETE(vip1);
    DISABLE_COMPLETE(vip2);
    DISABLE_COMPLETE(cal);
    DISABLE_COMPLETE(i2c5);
    DISABLE_COMPLETE(vpe);
    DISABLE_COMPLETE(ocmcram1);
    DISABLE_COMPLETE(hdmi);
    DISABLE_COMPLETE(hdmi0);
    DISABLE_COMPLETE(dss);
    DISABLE_COMPLETE(dispc);
    
    /* modules shared between BIOS and Linux, Do not reset or cutoff clks */
    DISABLE_PRCM(gpio1);
    DISABLE_PRCM(gpio2);
    DISABLE_PRCM(gpio3);
    DISABLE_PRCM(gpio4);
    DISABLE_PRCM(gpio5);
    DISABLE_PRCM(gpio6);
    
    /* Linux uses first 32 channels, BIOS uses last 32 */
    &edma {
    	dma-requests = <32>;
    };
    
    /* Update the CMA regions for Vision SDK binaries */
    &ipu2_cma_pool {
    	reg = <0x0 0x99000000 0x0 0x100000>;
    };
    
    &dsp1_cma_pool {
    	reg = <0x0 0x9C000000 0x0 0x1000000>;
    };
    
    &ipu1_cma_pool {
    	reg = <0x0 0x9A000000 0x0 0x2000000>;
    };
    
    
    &dsp2_cma_pool {
    	reg = <0x0 0x9D000000 0x0 0x100000>;
    };
    
    
    /* Additional memory regions required for Vision SDK
     * Keep this in sync with VSDK apps/build/tda2px/mem_segment_definition_linux.xs
     */
    &reserved_mem {
    	cmem_ocmc: cmem@40300000 {
    		compatible = "shared-dma-pool";
    		reg = <0x0 0x40300000 0x0 0x300000>;
    		sram = <&ocmcram1>;
    		no-map;
    		status = "okay";
    	};
    
    	cmem_pool: cmem@9D200000 {
    		compatible = "shared-dma-pool";
    		reg = <0x0 0x9D200000 0x0 0x2000000>;
    		no-map;
    		status = "okay";
    	};
    
    	vsdk_sr1_mem: vsdk_sr1_mem@84000000 {
    		compatible = "shared-dma-pool";
    		reg = <0x0 0x84000000 0x0 0x10900000>;
    		status = "okay";
    	};
    
    	vsdk_sr0_mem: vsdk_sr0_mem@9FB00000 {
    		compatible = "shared-dma-pool";
    		reg = <0x0 0x9FB00000 0x0 0x500000>;
    		status = "okay";
    	};
    
    	vsdk_eve_mem: vsdk_eve_mem@9D100000 {
    		compatible = "shared-dma-pool";
    		reg = <0x0 0x9D100000 0x0 0x100000>;
    		status = "okay";
    	};
    };
    
    &ipu1 {
    	/delete-property/ watchdog-timers;
    	timers= <&timer9> , <&timer11>;
    };
    
    &ipu2 {
    	/delete-property/ watchdog-timers;
    };
    
    &dsp1 {
    	/delete-property/ watchdog-timers;
    };
    
    &dsp2 {
    	/delete-property/ watchdog-timers;
    };

    For example the below log is a condition where the app is not responding and we are expecting a reset by the SoC

    [HOST] [IPU1-0]    155.554992 s:  IPC_OUT_2   : Delete in progress !!!
     [HOST] [IPU1-0]    155.555114 s:  IPC_OUT_2   : Delete Done !!!
     [HOST] [IPU1-0]    155.556396 s:  VPE: Delete in progress !!!
     [HOST] [DSP1  ]    155.552979 s: AlgorithmLink_surroundView3dDelete Done !!!
     [HOST] [DSP1  ]    155.553010 s:  ALGORITH
     [HOST] [DSP1  ] M: Delete Done (algId = 42) !!!
     [HOST] [DSP1  ]    155.553132 s:  IPC_IN_1   : Delete in progress !!!
     [HOST] [DSP1  ]    155.553193 s:  IPC_IN_1   : Delete Done !!!
     [HOST] [DSP1  ]    155.554504 s:  ALGORITHM: Delete in progress (algId = 45) !!!
     [HOST] [DSP1  ]    155.554535 s:  ALGORITHM: Delete Done (algId = 45) !!!
     [HOST] [DSP1  ]    155.554657 s:  IPC_IN_2   : Delete in progress !!!
     [HOST] [DSP1  ]    155.554718 s:  IPC_IN_2   : Delete Done !!!
     [HOST] [IPU1-0]    155.559903 s:  VPE: Delete Done !!!
     [HOST] [IPU1-0]    155.560391 s:  DECODE: Stop in progress !!!
     [HOST] [IPU1-0]    155.560513 s:  DECODE: Stop Done !!!
     [HOST] [IPU1-0]    155.560605 s:  DECODE: Delete in progress !!!
     [HOST] [IPU1-0]    155.569602 s:  DECODE: Delete Done !!!
     [HOST] [IPU1-0]    155.570060 s:  IPC_IN_0   : Delete in progress !!!
     [HOST] [IPU1-0]    155.570517 s:  IPC_IN_0   : Delete Done !!!
     [HOST] [HOST  ]    155.570792 s:  IPC_OUT_0   : Delete in progress !!!
     [HOST] [HOST  ]    155.570792 s:  IPC_OUT_0   : Delete Done !!!
    
    
    

    Regards,

    Padmesh

  • Hi Padmesh,

    Yes delete-property will remove that soft watch dog timers implemented for the remote cores. You need to remove
    that line and ensure that the code related to those watchdog timers is executed.

    Best Regards,
    Keerthy

  • Hi Keerthy,

    I have removed the /delete-property/ 

    By code do you mean I need to do any changes in drivers/remoteproc/omap_remoteproc.c ? and What should that be ?

    Or Is anything needed to be mentioned in the usecase code to handle the reset ?

    Regards,
    Padmesh

  • Hi Padmesh,

    I just wanted you to cross check if the code in: drivers/remoteproc/omap_remoteproc.c

    ret = request_irq(timers[i].irq, omap_rproc_watchdog_isr, IRQF_SHARED,
    					  "rproc-wdt", pdev);

    Is being requested & code under CONFIG_OMAP_REMOTEPROC_WATCHDOG is getting executed
    by adding some debug prints.

    Finally omap_rproc_watchdog_isr is getting called or not.

    Best Regards,
    Keerthy

  • Hi Keerthy,

    I have added few kernel prints inside and outside the function omap_rproc_watchdog_isr, but nothing was seen when the app got stuck. 

    I see that no calls are gone to omap_rproc_watchdog_isr.

    I made the following changes in dt by removing the  lines /delete-property/ watcdog-timers;

    &ipu1 {
    	timers= <&timer9> , <&timer11>;
    
    };
    
    &ipu2 {
    
    };
    
    &dsp1 {
    	
    };
    
    &dsp2 {
    	
    };

    And the prints added in omap_remoteproc.c as follows,

    static irqreturn_t omap_rproc_watchdog_isr(int irq, void *data)
    {
    	struct platform_device *pdev = data;
    	struct rproc *rproc = platform_get_drvdata(pdev);
    	struct omap_rproc *oproc = rproc->priv;
    	struct device *dev = &pdev->dev;
    	struct omap_rproc_pdata *pdata = dev->platform_data;
    	struct omap_rproc_timer_ops *timer_ops = pdata->timer_ops;
    	struct omap_rproc_timers_info *timers = oproc->timers;
    	struct omap_dm_timer *timer = NULL;
    	int num_timers = oproc->num_timers + oproc->num_wd_timers;
    	int i;
    	printk(KERN_INFO" Inside omap_rproc_watchdog_isr()");
    	for (i = oproc->num_timers; i < num_timers; i++) {
    		if (timers[i].irq > 0 && irq == timers[i].irq) {
    			timer = timers[i].odt;
    			break;
    		}
    	}
    
    	if (!timer) {
    		dev_err(dev, "invalid timer\n");
    		printk(KERN_INFO" Inside omap_rproc_watchdog_isr(): invalid timer");
    		return IRQ_NONE;
    	}
    	printk(KERN_INFO" Inside omap_rproc_watchdog_isr(): Calling timer_ops->ack_timer_irq(timer)");
    	timer_ops->ack_timer_irq(timer);
    
    	printk(KERN_INFO" Inside omap_rproc_watchdog_isr(): Calling rproc_report_crash()");
    	rproc_report_crash(rproc, RPROC_WATCHDOG);
    
    	return IRQ_HANDLED;
    }
    .
    .
    .
    ..
    		if (i >= oproc->num_timers) {
    			timers[i].irq = timer_ops->get_timer_irq(timers[i].odt);
    			if (timers[i].irq < 0) {
    				dev_err(dev, "get_irq for timer %p failed: %d\n",
    					np, timers[i].irq);
    				printk(KERN_INFO"get_irq for timer %p failed: %d\n",
    					np, timers[i].irq);
    				ret = -EBUSY;
    				goto free_timers;
    
    			}
    
    			ret = request_irq(timers[i].irq,
    					  omap_rproc_watchdog_isr, IRQF_SHARED,
    					  "rproc-wdt", pdev);
    			if (ret) {
    				printk(KERN_INFO"error requesting irq for timer %p\n",
    

    What other things do we need to look into ?

    Does this particular service message have any effect on the timer 

    Failed to start Synchronize System and HW clocks

    Regards,
    Padmesh

  • Hi Padmesh,

    I assume that the request_irq for watchdog went fine. Can you attach the dtb that you are
    using with all the latest changes in place?

    Best Regards,
    Keerthy

  • Hi Keerthy,

    Please find the attached txt file which was converted from dra76-evm-infoadas.dtb

    5811.dra76-evm-infoadas.txt

    Regards,

    Padmesh

  • Hi Padmesh,

    dsp1 is requesting for one watchdog timer.
    dsp2 is requesting for one watchdog timer.
    ipu1 is requesting for two watchdog timers.
    ipu1 is requesting for two watchdog timers.

    I am on a different hardware but essentially i see 6 watchdog interrupts under /proc/interrupts:

    cat /proc/interrupts | grep wdt
     56:          0          0      CBAR  35 Level     rproc-wdt
    9:          0          0      CBAR  38 Level     rproc-wdt
     60:          0          0      CBAR  39 Level     roc-wdt
     61:          0          0      CBAR  40 Level     rpc-wdt
     62:          0          0      CBAR  41 Level     rproc-wdt
     65:          0          0      CBAR 339 Level   rproc-wdt

    Can you confirm the same at your end. The numbers might be different but
    looking at your attached dts(dtb converted) we should see 6 entries. This will
    confirm that all the IRQs are registered.

    Best Regards,
    Keerthy

  • Hi Keerthy,

    I am getting only 3 entries for wdt,

    root@dra7xx-evm:~# cat /proc/interrupts | grep wdt
    317:          0          0      CBAR  38 Level     rproc-wdt
    318:          0          0      CBAR  39 Level     rproc-wdt
    320:          0          0      CBAR  41 Level     rproc-wdt

    Regards,

    Padmesh

  • Hi Padmesh,

    Can you confirm that "ret = request_irq(timers[i].irq,  omap_rproc_watchdog_isr, IRQF_SHARED, "rproc-wdt", rproc);"
    is happening for DSP1's watchdog timer i.e timer10 according to the dts shared earlier?

    diff --git a/drivers/remoteproc/omap_remoteproc.c b/drivers/remoteproc/omap_remoteproc.c
    index 731986d026..8ccb3df61d 100644
    --- a/drivers/remoteproc/omap_remoteproc.c
    +++ b/drivers/remoteproc/omap_remoteproc.c
    @@ -378,6 +378,7 @@ static int omap_rproc_enable_timers(struct rproc *rproc, bool configure)
                                    goto free_timers;
                            }
     
    +                      printk("Requesting IRQ for watchdgog\n");
                            ret = request_irq(timers[i].irq,
                                              omap_rproc_watchdog_isr, IRQF_SHARED,
                                              "rproc-wdt", rproc);
    @@ -1291,6 +1292,8 @@ static int omap_rproc_probe(struct platform_device *pdev)
            int num_timers;
            int ret;
     
    +       printk("Device name %s\n", pdev->name);
    +
            if (!np) {
                    dev_err(&pdev->dev, "only DT-based devices are supported\n");
                    return -ENODEV;

    Let me know if dsp1 has the watchdog timer irq requested. Then we can see why it is not firing.

    Best Regards,
    Keerthy

  • Hi Keerthy,

    Please find the attached dmesg log

    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Initializing cgroup subsys cpuset
    [    0.000000] Initializing cgroup subsys cpu
    [    0.000000] Initializing cgroup subsys cpuacct
    [    0.000000] Linux version 4.4.84+ (ubantu@teltvml0203x) (gcc version 5.3.1 20160113 (Linaro GCC 5.3-2016.02) ) #2 SMP PREEMPT Mon Sep 14 10:24:57 IST 2020
    [    0.000000] CPU: ARMv7 Processor [412fc0f2] revision 2 (ARMv7), cr=30c5387d
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
    [    0.000000] Machine model: TI DRA762 EVM
    [    0.000000] bootconsole [earlycon0] enabled
    [    0.000000] Reserved memory: created DMA memory pool at 0x0000000040300000, size 3 MiB
    [    0.000000] Reserved memory: initialized node cmem@40300000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: regions without no-map are not yet supported
    [    0.000000] Reserved memory: incorrect alignment of CMA region
    [    0.000000] Reserved memory: created CMA memory pool at 0x000000009a000000, size 32 MiB
    [    0.000000] Reserved memory: initialized node ipu1_cma@0x9a000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created CMA memory pool at 0x000000009c000000, size 16 MiB
    [    0.000000] Reserved memory: initialized node dsp1_cma@0x9c000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: incorrect alignment of CMA region
    [    0.000000] Reserved memory: regions without no-map are not yet supported
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009d200000, size 32 MiB
    [    0.000000] Reserved memory: initialized node cmem@9D200000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: regions without no-map are not yet supported
    [    0.000000] cma: Failed to reserve 64 MiB
    [    0.000000] Forcing write-allocate cache policy for SMP
    [    0.000000] Memory policy: Data cache writealloc
    [    0.000000] OMAP4: Map 0x000000009fd00000 to fe600000 for dram barrier
    [    0.000000] On node 0 totalpages: 121088
    [    0.000000] free_area_init_node: node 0, pgdat c077b000, node_mem_map df659000
    [    0.000000]   DMA zone: 1152 pages used for memmap
    [    0.000000]   DMA zone: 0 pages reserved
    [    0.000000]   DMA zone: 121088 pages, LIFO batch:31
    [    0.000000] DRA762 ES1.0
    [    0.000000] PERCPU: Embedded 11 pages/cpu @df5dd000 s13376 r8192 d23488 u45056
    [    0.000000] pcpu-alloc: s13376 r8192 d23488 u45056 alloc=11*4096
    [    0.000000] pcpu-alloc: [0] 0 [0] 1 
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 119936
    [    0.000000] Kernel command line: console=ttyO0,115200n8 elevator=noop root=/dev/mmcblk0p1 rw rootwait earlyprintk fixrtc omapdrm.num_crtc=2 consoleblank=0 cma=64M mem=512M rootfstype=ext4 snd.slots_reserved=1,1 loglevel=8 clk_ignore_unused
    [    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
    [    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
    [    0.000000] Memory: 145332K/484352K available (5098K kernel code, 259K rwdata, 1976K rodata, 300K init, 263K bss, 289868K reserved, 49152K cma-reserved, 0K highmem)
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    [    0.000000]     vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
    [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
    [    0.000000]       .text : 0xc0008000 - 0xc06f0f54   (7076 kB)
    [    0.000000]       .init : 0xc06f1000 - 0xc073c000   ( 300 kB)
    [    0.000000]       .data : 0xc073c000 - 0xc077cd28   ( 260 kB)
    [    0.000000]        .bss : 0xc077e000 - 0xc07bfd34   ( 264 kB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
    [    0.000000] Preemptible hierarchical RCU implementation.
    [    0.000000] 	Build-time adjustment of leaf fanout to 32.
    [    0.000000] NR_IRQS:16 nr_irqs:16 16
    [    0.000000] ti_dt_clocks_register: failed to lookup clock node gmac_gmii_ref_clk_div
    [    0.000000] OMAP clockevent source: timer1 at 32786 Hz
    [    0.000000] Architected cp15 timer(s) running at 6.14MHz (phys).
    [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x16af5adb9, max_idle_ns: 440795202250 ns
    [    0.000005] sched_clock: 56 bits at 6MHz, resolution 162ns, wraps every 4398046511023ns
    [    0.008307] Switching to timer-based delay loop, resolution 162ns
    [    0.015042] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
    [    0.025303] OMAP clocksource: 32k_counter at 32768 Hz
    [    0.031144] Console: colour dummy device 80x30
    [    0.035801] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
    [    0.042594] This ensures that you still see kernel messages. Please
    [    0.049102] update your kernel commandline.
    [    0.053492] Calibrating delay loop (skipped), value calculated using timer frequency.. 12.29 BogoMIPS (lpj=61475)
    [    0.064124] pid_max: default: 4096 minimum: 301
    [    0.068949] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.075829] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.083735] Initializing cgroup subsys io
    [    0.087959] Initializing cgroup subsys memory
    [    0.092532] Initializing cgroup subsys devices
    [    0.097181] Initializing cgroup subsys freezer
    [    0.101842] Initializing cgroup subsys perf_event
    [    0.106761] Initializing cgroup subsys pids
    [    0.111155] CPU: Testing write buffer coherency: ok
    [    0.116453] /cpus/cpu@0 missing clock-frequency property
    [    0.122000] /cpus/cpu@1 missing clock-frequency property
    [    0.127557] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
    [    0.133476] Setting up static identity map for 0x80008380 - 0x800083e0
    [    0.220589] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
    [    0.220652] Brought up 2 CPUs
    [    0.229676] SMP: Total of 2 processors activated (24.59 BogoMIPS).
    [    0.236113] CPU: All CPU(s) started in HYP mode.
    [    0.240937] CPU: Virtualization extensions available.
    [    0.246608] devtmpfs: initialized
    [    0.282401] VFP support v0.3: implementor 41 architecture 4 part 30 variant f rev 0
    [    0.291087] omap_hwmod: l3_main_2 using broken dt data from ocp
    [    0.309736] omap_hwmod: dcan1: _wait_target_disable failed
    [    0.414017] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.424214] futex hash table entries: 16 (order: -2, 1024 bytes)
    [    0.431784] pinctrl core: initialized pinctrl subsystem
    [    0.438097] NET: Registered protocol family 16
    [    0.443032] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.480254] cpuidle: using governor ladder
    [    0.510280] cpuidle: using governor menu
    [    0.523285] OMAP GPIO hardware version 0.1
    [    0.531802] GPIO line 161 (radio_rst) hogged as output/low
    [    0.540017] irq: no irq domain found for /ocp/l4@4a000000/scm@2000/pinmux@1400 !
    [    0.573389] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
    [    0.581706] hw-breakpoint: maximum watchpoint size is 8 bytes.
    [    0.588314] omap4_sram_init:Unable to allocate sram needed to handle errata I688
    [    0.596007] omap4_sram_init:Unable to get sram pool needed to handle errata I688
    [    0.603947] OMAP DMA hardware revision 0.0
    [    0.650363] omap-dma-engine 4a056000.dma-controller: OMAP DMA engine driver (LinkedList1/2/3 supported)
    [    0.661349] edma 43300000.edma: memcpy is disabled
    [    0.671510] edma 43300000.edma: TI EDMA DMA engine driver
    [    0.681896] omap-iommu 40d01000.mmu: 40d01000.mmu registered
    [    0.687963] omap-iommu 40d02000.mmu: 40d02000.mmu registered
    [    0.694028] omap-iommu 58882000.mmu: 58882000.mmu registered
    [    0.700082] omap-iommu 55082000.mmu: 55082000.mmu registered
    [    0.706277] omap-iommu 41501000.mmu: 41501000.mmu registered
    [    0.712354] omap-iommu 41502000.mmu: 41502000.mmu registered
    [    0.721680] palmas 0-0058: IRQ missing: skipping irq request
    [    0.738625] palmas 0-0058: Muxing GPIO 51, PWM 0, LED 2
    [    0.799215] irq: no irq domain found for /ocp/i2c@48070000/tps65917@58 !
    [    0.806909] omap_i2c 48070000.i2c: bus 0 rev0.12 at 400 kHz
    [    0.813142] omap_i2c 48060000.i2c: bus 2 rev0.12 at 400 kHz
    [    0.819417] omap_i2c 4807a000.i2c: bus 3 rev0.12 at 400 kHz
    [    0.825446] media: Linux media interface: v0.10
    [    0.830232] Linux video capture interface: v2.00
    [    0.835087] pps_core: LinuxPPS API ver. 1 registered
    [    0.840281] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.849755] PTP clock support registered
    [    0.853918] EDAC MC: Ver: 3.0.0
    [    0.857995] omap-mailbox 48840000.mailbox: omap mailbox rev 0x400
    [    0.864650] omap-mailbox 48842000.mailbox: omap mailbox rev 0x400
    [    0.872144] clocksource: Switched to clocksource arch_sys_counter
    [    0.889606] NET: Registered protocol family 2
    [    0.894723] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.902068] TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
    [    0.908848] TCP: Hash tables configured (established 4096 bind 4096)
    [    0.915509] UDP hash table entries: 256 (order: 1, 8192 bytes)
    [    0.921593] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
    [    0.928263] NET: Registered protocol family 1
    [    0.934013] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available
    [    0.953085] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.959178] ntfs: driver 2.1.32 [Flags: R/O].
    [    0.965274] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
    [    0.972997] io scheduler noop registered (default)
    [    0.978004] io scheduler deadline registered
    [    0.982533] io scheduler cfq registered
    [    0.991356] pinctrl-single 4a003400.pinmux: 282 pins at pa fc003400 size 1128
    [    1.062771] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
    [    1.072889] 4806a000.serial: ttyS0 at MMIO 0x4806a000 (irq = 301, base_baud = 3000000) is a 8250
    [    1.082068] console [ttyS0] enabled
    [    1.089250] bootconsole [earlycon0] disabled
    [    1.098912] 4806c000.serial: ttyS1 at MMIO 0x4806c000 (irq = 302, base_baud = 3000000) is a 8250
    [    1.108608] 48020000.serial: ttyS2 at MMIO 0x48020000 (irq = 303, base_baud = 3000000) is a 8250
    [    1.118884] [drm] Initialized drm 1.1.0 20060810
    [    1.124450] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
    [    1.131093] [drm] No driver support for vblank timestamp query.
    [    1.137246] [drm] Initialized vdrm 1.0.0 20110917 on minor 0
    [    1.147804] vmemexp device MAJOR num = 245
    [    1.151934] vmemexp class registered
    [    1.155679] /dev/vmemexp device registered
    [    1.159794] ioctl DBUFIOC_EXPORT_VIRTMEM = -1072899120
    [    1.168282] m25p80 spi32766.0: s25fl256s1 (32768 Kbytes)
    [    1.173700] 7 ofpart partitions found on MTD device spi32766.0
    [    1.179560] Creating 7 MTD partitions on "spi32766.0":
    [    1.184743] 0x000000000000-0x000000040000 : "QSPI.SPL"
    [    1.190920] 0x000000040000-0x000000140000 : "QSPI.u-boot"
    [    1.197266] 0x000000140000-0x0000001c0000 : "QSPI.u-boot-spl-os"
    [    1.204210] 0x0000001c0000-0x0000001d0000 : "QSPI.u-boot-env"
    [    1.210884] 0x0000001d0000-0x0000001e0000 : "QSPI.u-boot-env.backup1"
    [    1.218291] 0x0000001e0000-0x0000009e0000 : "QSPI.kernel"
    [    1.224635] 0x0000009e0000-0x000002000000 : "QSPI.file-system"
    [    1.232394] libphy: Fixed MDIO Bus: probed
    [    1.282178] davinci_mdio 48485000.mdio: davinci mdio revision 1.6
    [    1.288303] libphy: 48485000.mdio: probed
    [    1.296371] davinci_mdio 48485000.mdio: phy[2]: device 48485000.mdio:02, driver TI DP83867
    [    1.304697] davinci_mdio 48485000.mdio: phy[3]: device 48485000.mdio:03, driver TI DP83867
    [    1.313663] cpsw 48484000.ethernet: Detected MACID = f8:36:9b:18:d2:84
    [    1.320312] cpsw 48484000.ethernet: cpts: overflow check period 800
    [    1.327312] cpsw 48484000.ethernet: cpsw: Detected MACID = f8:36:9b:18:d2:85
    [    1.336161] i2c /dev entries driver
    [    1.345189] omap_hsmmc 480b4000.mmc: no pinctrl state for sdr25 mode
    [    1.351576] omap_hsmmc 480b4000.mmc: no pinctrl state for sdr12 mode
    [    1.358167] vsys_3v3: supplied by vsys_12v0
    [    1.362434] smps5: supplied by vsys_3v3
    [    1.366491] vio_1v8: supplied by smps5
    [    1.402564] omap_hsmmc 480ad000.mmc: no pinctrl state for default mode
    [    1.421436] hwspinlock_user gatemp: requested 20 hwspinlocks
    [    1.427486] Device name 58820000.ipu
    [    1.431169] omap-rproc 58820000.ipu: assigned reserved memory node ipu1_cma@0x9a000000
    [    1.439202]  remoteproc0: 58820000.ipu is available
    [    1.444144]  remoteproc0: Note: remoteproc is still under development and considered experimental.
    [    1.453184]  remoteproc0: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
    [    1.463741]  remoteproc0: Direct firmware load for dra7-ipu1-fw.xem4 failed with error -2
    [    1.472017] Device name 55020000.ipu
    [    1.475665]  remoteproc0: Falling back to user helper
    [    1.480926] omap-rproc 55020000.ipu: device does not have specific CMA pool
    [    1.487961] mmc0: MAN_BKOPS_EN bit is not set
    [    1.492181]  remoteproc1: releasing 55020000.ipu
    [    1.492210] omap-rproc: probe of 55020000.ipu failed with error -22
    [    1.492252] Device name 40800000.dsp
    [    1.492394] omap-rproc 40800000.dsp: assigned reserved memory node dsp1_cma@0x9c000000
    [    1.492451]  remoteproc1: 40800000.dsp is available
    [    1.492454]  remoteproc1: Note: remoteproc is still under development and considered experimental.
    [    1.492458]  remoteproc1: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
    [    1.492729] Device name 41000000.dsp
    [    1.492836] omap-rproc 41000000.dsp: device does not have specific CMA pool
    [    1.492841]  remoteproc2: releasing 41000000.dsp
    [    1.492869] omap-rproc: probe of 41000000.dsp failed with error -22
    [    1.494169] NET: Registered protocol family 10
    [    1.522368]  remoteproc1: Direct firmware load for dra7-dsp1-fw.xe66 failed with error -2
    [    1.522372]  remoteproc1: Falling back to user helper
    [    1.522950] sit: IPv6 over IPv4 tunneling driver
    [    1.523588] NET: Registered protocol family 17
    [    1.523607] NET: Registered protocol family 41
    [    1.523839] omap_voltage_late_init: Voltage driver support not added
    [    1.524369] Adding alias for supply vdd,cpu0 -> vdd,4a003b20.oppdm
    [    1.524373] Adding alias for supply vbb,cpu0 -> vbb,4a003b20.oppdm
    [    1.524457] buck10: supplied by vsys_3v3
    [    1.565491] Adding alias for supply vdd,cpu0 -> vdd,4a003b20.oppdm
    [    1.565496] Adding alias for supply vbb,cpu0 -> vbb,4a003b20.oppdm
    [    1.628335] Power Management for TI OMAP4+ devices.
    [    1.633404] Registering SWP/SWPB emulation handler
    [    1.639127] dmm 4e000000.dmm: workaround for errata i878 in use
    [    1.646472] dmm 4e000000.dmm: initialized all PAT entries
    [    1.652711] [drm] Initialized omapdrm 1.0.0 20110917 on minor 1
    [    1.659859] hctosys: unable to open rtc device (rtc0)
    [    1.665584] mmc0: new HS200 MMC card at address 0001
    [    1.674670] vio_3v3_sd: disabling
    [    1.678001] aic_dvdd: disabling
    [    1.680996] mmcblk0: mmc0:0001 MMC08G 7.25 GiB 
    [    1.685738] clk: Not disabling unused clocks
    [    1.691185] mmcblk0boot0: mmc0:0001 MMC08G partition 1 8.00 MiB
    [    1.697305] mmcblk0boot1: mmc0:0001 MMC08G partition 2 8.00 MiB
    [    1.703841]  mmcblk0: p1
    [    1.715684] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: (null)
    [    1.723849] VFS: Mounted root (ext4 filesystem) on device 179:1.
    [    1.733206] devtmpfs: mounted
    [    1.736348] Freeing unused kernel memory: 300K
    [    1.740807] This architecture does not have kernel memory protection.
    [    1.763796] Kernel Entry time 9721 ticks
    [    1.836612] systemd[1]: System time before build time, advancing clock.
    [    1.859106] random: systemd: uninitialized urandom read (16 bytes read, 11 bits of entropy available)
    [    1.870358] random: systemd: uninitialized urandom read (16 bytes read, 11 bits of entropy available)
    [    1.881304] systemd[1]: systemd 229 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN)
    [    1.899703] systemd[1]: Detected architecture arm.
    [    1.922768] systemd[1]: Set hostname to <dra7xx-evm>.
    [    1.970614] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 12 bits of entropy available)
    [    1.991014] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 13 bits of entropy available)
    [    2.002112] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 13 bits of entropy available)
    [    2.012695] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 13 bits of entropy available)
    [    2.025391] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 13 bits of entropy available)
    [    2.062663] random: systemd: uninitialized urandom read (16 bytes read, 16 bits of entropy available)
    [    2.072086] random: systemd: uninitialized urandom read (16 bytes read, 16 bits of entropy available)
    [    2.081821] random: systemd: uninitialized urandom read (16 bytes read, 16 bits of entropy available)
    [    2.176505] systemd[1]: sysinit.target: Found ordering cycle on sysinit.target/start
    [    2.184367] systemd[1]: sysinit.target: Found dependency on alignment.service/start
    [    2.192059] systemd[1]: sysinit.target: Found dependency on basic.target/start
    [    2.199344] systemd[1]: sysinit.target: Found dependency on sockets.target/start
    [    2.206821] systemd[1]: sysinit.target: Found dependency on dbus.socket/start
    [    2.213997] systemd[1]: sysinit.target: Found dependency on sysinit.target/start
    [    2.221427] systemd[1]: sysinit.target: Breaking ordering cycle by deleting job alignment.service/start
    [    2.230870] systemd[1]: alignment.service: Job alignment.service/start deleted to break ordering cycle starting with sysinit.target/start
    [    2.263802] systemd[1]: Listening on udev Control Socket.
    [    2.292434] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
    [    2.322371] systemd[1]: Listening on Journal Socket (/dev/log).
    [    2.353252] systemd[1]: Created slice User and Session Slice.
    [    2.382389] systemd[1]: Listening on Journal Socket.
    [    2.402300] systemd[1]: Reached target Remote File Systems.
    [    2.436982] systemd[1]: Listening on udev Kernel Socket.
    [    2.462445] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
    [    2.492301] systemd[1]: Reached target Paths.
    [    2.512286] systemd[1]: Reached target Swap.
    [    2.532362] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
    [    2.562425] systemd[1]: Listening on Network Service Netlink Socket.
    [    2.592342] systemd[1]: Listening on Syslog Socket.
    [    2.612761] systemd[1]: Created slice System Slice.
    [    2.672507] systemd[1]: Starting Journal Service...
    [    2.692901] systemd[1]: Created slice system-serial\x2dgetty.slice.
    [    2.713077] systemd[1]: Created slice system-getty.slice.
    [    2.732324] systemd[1]: Reached target Slices.
    [    2.782317] systemd[1]: Mounting POSIX Message Queue File System...
    [    2.805075] systemd[1]: Starting Load Kernel Modules...
    [    2.834297] systemd[1]: Mounting Temporary Directory...
    [    2.853986] systemd[1]: Mounting Debug File System...
    [    2.912450] systemd[1]: Starting Setup Virtual Console...
    [    2.934162] systemd[1]: Starting Create list of required static device nodes for the current kernel...
    [    2.963949] systemd[1]: Starting Remount Root and Kernel File Systems...
    [    2.975378] EXT4-fs (mmcblk0p1): re-mounted. Opts: (null)
    [    2.987728] systemd[1]: Mounted POSIX Message Queue File System.
    [    3.012432] systemd[1]: Mounted Debug File System.
    [    3.032328] systemd[1]: Mounted Temporary Directory.
    [    3.052482] systemd[1]: Started Journal Service.
    [    3.612368] systemd-journald[96]: Received request to flush runtime journal from PID 1
    [    3.907215]  remoteproc1: powering up 40800000.dsp
    [    3.912034]  remoteproc1: Booting fw image dra7-dsp1-fw.xe66, size 811608
    [    3.927363] omap_hwmod: mmu0_dsp1: _wait_target_disable failed
    [    3.933250] omap-iommu 40d01000.mmu: 40d01000.mmu: version 3.0
    [    3.939186] omap-iommu 40d02000.mmu: 40d02000.mmu: version 3.0
    [    4.037295] CAN device driver interface
    [    4.086748] m_can 42c01a00.mcan: hclk could not be found
    [    4.123054] m_can 42c01a00.mcan: m_can device registered (irq=362, version=32)
    [    4.137241] Requesting IRQ for watchdgog
    [    4.154399]  remoteproc1: remote processor 40800000.dsp is now up
    [    4.167490] virtio_rpmsg_bus virtio0: rpmsg host is online
    [    4.188455] omap-des 480a5000.des: OMAP DES hw accel rev: 2.2
    [    4.193419]  remoteproc1: registered virtio0 (type 7)
    [    4.280145] omap_rng 48090000.rng: OMAP Random Number Generator ver. 20
    [    4.328691] vio_3v3: supplied by vsys_3v3
    [    4.336846] aic_dvdd: supplied by vio_3v3
    [    4.354009] davinci-mcasp 48464000.mcasp: DAI is shared
    [    4.380076] davinci-mcasp 48474000.mcasp: DAI is shared
    [    4.495064] vsys_5v0: supplied by vsys_12v0
    [    4.500567] ldo3: supplied by vsys_5v0
    [    4.508071] SCSI subsystem initialized
    [    4.585596] libata version 3.00 loaded.
    [    4.609416] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 4 sec
    [    4.629028] omap-sham 4b101000.sham: hw accel on OMAP rev 4.3
    [    4.697454] omap-aes 4b500000.aes: OMAP AES hw accel rev: 3.3
    [    4.743350] omap-aes 4b700000.aes: OMAP AES hw accel rev: 3.3
    [    4.762416] ahci 4a140000.sata: forcing port_map 0x0 -> 0x1
    [    4.771080] ahci 4a140000.sata: AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl platform mode
    [    4.865976] ahci 4a140000.sata: flags: 64bit ncq sntf pm led clo only pmp pio slum part ccc apst 
    [    4.890668]  remoteproc0: powering up 58820000.ipu
    [    4.896493]  remoteproc0: Booting fw image dra7-ipu1-fw.xem4, size 8368392
    [    4.938368] omap-iommu 58882000.mmu: 58882000.mmu: version 2.1
    [    4.953877] scsi host0: ahci
    [    4.959322] ata1: SATA max UDMA/133 mmio [mem 0x4a140000-0x4a1410ff] port 0x100 irq 342
    [    4.973942] asoc-simple-card sound0: tlv320aic3x-hifi <-> 48468000.mcasp mapping ok
    [    5.030797] [drm] Initialized pvr 1.14.3699939 20110701 on minor 2
    [    5.081160] Requesting IRQ for watchdgog
    [    5.113025] Requesting IRQ for watchdgog
    [    5.133976]  remoteproc0: remote processor 58820000.ipu is now up
    [    5.156993] virtio_rpmsg_bus virtio1: rpmsg host is online
    [    5.175365]  remoteproc0: registered virtio1 (type 7)
    [    5.182803] virtio_rpmsg_bus virtio0: creating channel rpmsg-proto addr 0x50
    [    5.199608] virtio_rpmsg_bus virtio1: creating channel rpmsg-proto addr 0x50
    [    5.352431] ata1: SATA link down (SStatus 0 SControl 300)
    [    6.108543] net eth1: initializing cpsw version 1.15 (0)
    [    6.117859] net eth0: initialized cpsw ale version 1.4
    [    6.127450] net eth0: ALE Table size 1024
    [    6.174371] PVR_K: UM DDK-(3699939) and KM DDK-(3699939) match. [ OK ]
    [    6.209028] net eth1: phy found : id is : 0x2000a231
    [    6.226338] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
    [    6.239618] net eth0: initializing cpsw version 1.15 (0)
    [    6.304186] net eth0: phy found : id is : 0x2000a231
    [    6.322203] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    [    6.577713] ------------[ cut here ]------------
    [    6.582427] WARNING: CPU: 1 PID: 651 at mm/page_alloc.c:3023 __alloc_pages_nodemask+0x198/0x8e4()
    [    6.591299] Modules linked in: bc_example(O) snd_soc_simple_card extcon_usb_gpio extcon pvrsrvkm(O) ahci_platform libahci_platform omap_aes_driver omap_sham omap_wdt libahci libata scsi_mod phy_omap_usb2 snd_soc_davinci_mcasp snd_soc_edma snd_soc_tlv320aic3x snd_soc_omap snd_soc_core snd_pcm_dmaengine snd_pcm snd_timer snd omap_rng soundcore rng_core omap_des m_can pbias_regulator can_dev sch_fq_codel
    [    6.631278] CPU: 1 PID: 651 Comm: weston Tainted: G           O    4.4.84+ #2
    [    6.638443] Hardware name: Generic DRA74X (Flattened Device Tree)
    [    6.644562] Backtrace: 
    [    6.644575] [<c00125cc>] (dump_backtrace) from [<c00127c8>] (show_stack+0x18/0x1c)
    [    6.644588]  r7:00000bcf r6:600f0013 r5:00000000 r4:c0757f50
    [    6.644595] [<c00127b0>] (show_stack) from [<c0225b88>] (dump_stack+0x84/0xa0)
    [    6.644601] [<c0225b04>] (dump_stack) from [<c0030b7c>] (warn_slowpath_common+0x8c/0xb8)
    [    6.644608]  r7:00000bcf r6:c065a7ab r5:00000009 r4:00000000
    [    6.644613] [<c0030af0>] (warn_slowpath_common) from [<c0030c4c>] (warn_slowpath_null+0x24/0x2c)
    [    6.644622]  r8:ffffffff r7:024000c0 r6:0000000b r5:00000000 r4:c077c26f
    [    6.644629] [<c0030c28>] (warn_slowpath_null) from [<c00c13d8>] (__alloc_pages_nodemask+0x198/0x8e4)
    [    6.644637] [<c00c1240>] (__alloc_pages_nodemask) from [<c0019814>] (__dma_alloc_buffer+0x34/0x88)
    [    6.644646]  r10:c02dc98c r9:00000000 r8:ffffffff r7:024000c0 r6:007e9000 r5:d9e9da10
    [    6.644649]  r4:0000000b
    [    6.644655] [<c00197e0>] (__dma_alloc_buffer) from [<c001a2c4>] (__dma_alloc+0x260/0x364)
    [    6.644661]  r7:024000c0 r6:00000001 r5:d9e9da10 r4:007e9000
    [    6.644666] [<c001a064>] (__dma_alloc) from [<c001a4d8>] (arm_dma_alloc+0x60/0x6c)
    [    6.644675]  r10:d8d70f78 r9:d9e9da10 r8:d9fbf400 r7:d9576200 r6:00000001 r5:00c00000
    [    6.644678]  r4:00000707
    [    6.644685] [<c001a478>] (arm_dma_alloc) from [<c02dc98c>] (v_gem_dumb_create+0x104/0x2c4)
    [    6.644691]  r6:c001a478 r5:d745de68 r4:d8d70f00
    [    6.644699] [<c02dc888>] (v_gem_dumb_create) from [<c02cfd8c>] (drm_mode_create_dumb_ioctl+0xcc/0xe0)
    [    6.644708]  r10:c07b3c90 r9:00000780 r8:d9fbf400 r7:d7c25780 r6:d745de68 r5:00000438
    [    6.644710]  r4:007e9000
    [    6.644717] [<c02cfcc0>] (drm_mode_create_dumb_ioctl) from [<c02c17d8>] (drm_ioctl+0x258/0x3c8)
    [    6.644726]  r9:c02064b2 r8:d7c25780 r7:c05353c4 r6:00000020 r5:00000020 r4:d745de68
    [    6.644733] [<c02c1580>] (drm_ioctl) from [<c010c7c8>] (do_vfs_ioctl+0x4f4/0x5b8)
    [    6.644742]  r10:00000000 r9:d745c000 r8:bec7a6c8 r7:c02064b2 r6:d8c0a540 r5:d956ec68
    [    6.644745]  r4:bec7a6c8
    [    6.644750] [<c010c2d4>] (do_vfs_ioctl) from [<c010c8c8>] (SyS_ioctl+0x3c/0x64)
    [    6.644759]  r10:00000000 r9:d745c000 r8:bec7a6c8 r7:c02064b2 r6:d8c0a540 r5:d8c0a540
    [    6.644761]  r4:0000000d
    [    6.644768] [<c010c88c>] (SyS_ioctl) from [<c000f1e0>] (ret_fast_syscall+0x0/0x34)
    [    6.644777]  r9:d745c000 r8:c000f384 r7:00000036 r6:c02064b2 r5:bec7a6c8 r4:0004fc20
    [    6.645826] ---[ end trace 3c9d6bbf66438f03 ]---
    [    8.309041] cpsw 48484000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    [    8.317101] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    [  106.861007] random: nonblocking pool is initialized
    [  188.961135] DMA: Module install successful, device major num = 241 
    [  188.967634] DRV: Module install successful
    [  195.279345] omap_l3_noc 44000000.ocp: L3 application error: target 3 mod:2 (unclearable)
    [  195.320242] omap_l3_noc 44000000.ocp: L3 debug error: target 3 mod:2 (unclearable)
    

    Please note that we have done memory mapping to 512 MB configuration.

    ipu1_cma@0x9a000000

    ipu2_cma@0x99000000

    dsp1_cma@0x9c000000

    dsp2_cma@0x9d000000

    We are only usinf dsp1 and ipu1 firmwares

    Regards,

    Padmesh

  • Hi Padmesh,

    Understood. Thanks so ipu1 & dsp1's wdt are being registered.

    From the dts shared earlier timer10 is the watchdog for dsp1. Do you load the timer
    in your firmware? From the A15 side the driver clearly mentions that.

    In case of omap_rproc like for example DSP1 which has timer10 as its watchdog:

    &dsp1 {
            mboxes = <&mailbox5 &mbox_dsp1_ipc3x>;
            ti,timers = <&timer5>;
            ti,watchdog-timers = <&timer10>;
    };

    In the code: omap_rproc_request_timer -->
    /* clean counter, remoteproc code will set the value */
            timer->timer_ops->set_load(timer->odt, 0);

    This mean that dsp firmware should be configuring the timer10 value
    as the watchdog timer value upon whose expiry the omap_rproc_watchdog_isr
    will be triggered.

    Are you using custom DSP firmware or the TI firmware for DSP? I believe the DSP firmware
    shared by TI in the /lib/firmware folder for dsp1 should be configuring that. Can you just ensure
    that timer10 is loaded with appropriate value from the DSP firmware?


    Best Regards,
    Keerthy

  • Hi Keerthy,

    We are using TI firmware for DSP. 
    To load the appropriate value into timer10 do we need to add anything in firmware?
    Is dra7-dsp1-fw.xe66 giving the value to the timer?


    Best Regards,
    Chinmayee

  • Hi Chinmayee,

    If you have a debugger can you dump out the timer10 registers to check if it is functional?

    Starting from address: 0x48086000 - 0x4808606C.

    Regards,
    Keerthy