Softdog caused by FM

Source: Internet
Author: User

[Symptom]10063
Brcm4330, enter FM, you can listen to the problem, but click the close button ----> click the close button to open again, the system restarts. Required.

[Analysis]After the restart, ADB pull/proc/last_kmsg.
Export log as follows

[639.510000] <-GTP-DEBUG-> [730] pre_touch: 00, finger: 80.
[639.520000] eic_handler
[639.520000] eic_handler
[639.521000] <-GTP-DEBUG-> [730] pre_touch: 00, finger: 80.
[639.529000] --> export th_set_power, a [0]
[2, 668.248000] Soft watch triggered here, wait for 2 seconds to collect logs
[670.248000] softdog: Initiating System reboot: 0 0
[670.248000] Kernel panic-not syncing: softdog: Timeout !!!
[670.248000]
[670.248000] [<c4532e68>] (unwind_backtrace + 0x0/0xfc) from [<c48b20a8>] (panic + 0x58/0 xdc)
[670.248000] [<c48b20a8>] (panic + 0x58/0 xdc) from [<c475ee5c>] (watchdog_fire + 0x78/0 xc4)
[670.248000] [<c475ee5c>] (watchdog_fire + 0x78/0 xc4) from [<c4567dbc>] (run_timer_softirq + 0x11c/0x254)
[670.248000] [<c4567dbc>] (run_timer_softirq + 0x11c/0x254) from [<c4562960>] (_ do_softirq + 0x8c/0x118)
[670.248000] [<c4562960>] (_ do_softirq + 0x8c/0x118) from [<c4562a68>] (irq_exit + 0x7c/0x98)
[670.248000] [<c4562a68>] (irq_exit + 0x7c/0x98) from [<c4552f30>] (nk_do_xirq + 0x118/0x150)
[670.249000] [<c4552f30>] (nk_do_xirq + 0x118/0x150) from [<c48b470c>] (_ irq_svc_loop + 0x14/0 x3c)
[670.249000] [<c48b470c>] (_ irq_svc_loop + 0x14/0 x3c) from [<c46d4908>] (serialsc8800_startup + 0x64/0x150)
[670.249000] [<c46d4908>] (serialsc8800_startup + 0x64/0x150) from [<c46d2dd4>] (uart_startup + 0x5c/0x180)
[670.249000] [<c46d2dd4>] (uart_startup + 0x5c/0x180) from [<c46d3a00>] (uart_open + 0xec/0x3bc)
[670.249000] [<c46d3a00>] (uart_open + 0xec/0x3bc) from [<c46ca138>] (tty_open + 0x1ec/0x41c)
[670.249000] [<c46ca138>] (tty_open + 0x1ec/0x41c) from [<c45dffa0>] (chrdev_open + 0xb4/0x148)
[670.249000] [<c45dffa0>] (chrdev_open + 0xb4/0x148) from [<c45db90c>] (_ dentry_open + 0xc4/0x258)
[670.249000] [<c45db90c>] (_ dentry_open + 0xc4/0x258) from [<c45dbb78>] (nameidata_to_filp + 0x50/0x58)
[670.249000] [<c45dbb78>] (nameidata_to_filp + 0x50/0x58) from [<c45e6b6c>] (do_last + 0x37c/0x664)
[670.249000] [<c45e6b6c>] (do_last + 0x37c/0x664) from [<c45e8b34>] (do_filp_open + 0x1b0/0x5a0)
[670.249000] [<c45e8b34>] (do_filp_open + 0x1b0/0x5a0) from [<c45db75c>] (do_sys_open + 0x5c/0x120)
[670.249000] [<c45db75c>] (do_sys_open + 0x5c/0x120) from [<c452df20>] (ret_fast_syscall + 0x0/0x5c)

Softdog is triggered during UART transmission, causing Kernel panic!
1) confirm the customer's reference design modification: WiFi uses SPI, hostwake and extwake without sdio, and the reference design is different !!
There is no problem verifying the original version of FM on our machine !!
These two points are very important.
2) First, The UART driver will be suspected. Search for serialsc8800_startup to see the UART driver, but it cannot be seen .....
3) Add the print information to the main function in brcm_patchram_plus.c. The firmware will be downloaded from the function every time the FM is opened. It is found that the proc_reset () function is used,
However, this is the process of sending cmd to bcm4330 through UART, And the download of firmware has not yet reached. This proves that there is indeed a problem with UART transmission.
4) Then I went to see the UART driver, but I still couldn't see why ..... I don't know why it cannot be transmitted .....
5) If you want to enable the timing measurement signal based on the spec BT, but the customer's Board does not have a test point, it cannot be measured.
6) Re-check the pin gpio configuration and find a local configuration error. Release in board_cfg.c
Const unsigned long brcm_bt2ap_set_pin_cfg [] = {
Mfp_0000_x (rfctl1,
Af3, ds1,
F_pull_up, s_pull_up,
Io_oe), // gpio 91
Mfp_0000_x (rfctl2,
Af3, ds1,
F_pull_up, s_pull_up,
Io_ie), // gpio 92
};
This is to set the hostwake and extwake pin, and must be reconfigured as the customer's pin according to the customer's modified pin
Even though the customer knows that the modification is made here, the error is corrected. one pin is configured as bt_reset !!

[Summary]
After the problem is solved, the reason for panic analysis is that the brcm4330 chip does not respond to UART, resulting in the failure to communicate with panic.
This problem is difficult to identify the brcm chip problem directly from the log backtrace, unless you are very familiar with UART drivers.
So the entire problem flow is: pinmap configuration error ----> the chip is not working ----> UART communication exception ----> panic.
If the hardware does not respond, panic

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.