Troubleshooting Reboot Issue After Shutdown on LS1046ARDB Board
Investigation on a rare reboot issue after shutdown occurring on LS1046ARDB board revealed that the SOC was reset, triggering a restart 4 times out of 46 shutdown instances. Despite disabling the watchdog driver, the problem persists, indicating a potential underlying issue. Further analysis is required to pinpoint the exact cause and resolve the unexpected reboots.
Download Presentation
Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
E N D
Presentation Transcript
Problem: In rare cases, shutdown h now causes a reboot after shutdown. The average frequency is about 4 times in 46 times. However, there is no regularity in the frequency of occurrence. Investigation method: Repeat login and shutdown using smart plug (set AC ON / OFF with timer) + teraterm macro. Also, observe the PORESET_B and RESET_REQ_B waveforms of the LS1046A with an oscilloscope. HW : LS1046ARDB SW : LSDK20.04 (kernel 19.04) uname -a Linux localhost 4.19.90-dirty #2 SMP PREEMPT Thu Dec 3 16:38:49 JST 2020 aarch64 aarch64 aarch64 GNU/Linux Confirmation result: We confirmed that the restart is occurring in shutdown. Reproduced 4 times out of 46 times. In that case restart is done after 7 seconds after shutdown. At that time, it was confirmed that RESET_REQ_B was issued by LS1046A. This revealed that the SOC was reset. I checked it with the kernel without the WDT driver of the Linux kernel, but the phenomenon does not change. It doesn't seem to be a problem with the WDT driver.
On the LS1046ARDB board, I confirmed the restart 4 times out of 46 shutdown times. Whenever a problem occurs, it will restart after 7 seconds. Waveform when restarting after shutdown [20:51:30] [ OK ] Reached target Final Step. [20:51:30] Starting Power-Off... [20:51:30] [ 18.673954] reboot: Power down [20:51:30] INFO: PSCI Power Domain Map: [20:51:30] INFO: Domain Node : Level 2, parent_node -1, State ON (0x0) [20:51:30] INFO: Domain Node : Level 1, parent_node 0, State ON (0x0) [20:51:30] INFO: CPU Node : MPID 0x0, parent_node 1, State ON (0x0) [20:51:30] INFO: CPU Node : MPID 0x1, parent_node 1, State ON (0x0) [20:51:30] INFO: CPU Node : MPID 0x2, parent_node 1, State ON (0x0) [20:51:30] INFO: CPU Node : MPID 0x3, parent_node 1, State ON (0x0) [20:51:37] INFO: RCW BOOT SRC is SD/EMMC [20:51:37] INFO: RCW BOOT SRC is SD/EMMC [20:51:37] INFO: esdhc_emmc_init [20:51:37] INFO: Card detected successfully [20:51:37] INFO: init done: [20:51:37] INFO: time base 45 ms [20:51:38] NOTICE: UDIMM 18ADF2G72AZ-2G6E1 [20:51:38] INFO: Time after parsing SPD 410 ms [20:51:38] INFO: Time before programming controller 413 ms [20:51:40] [20:51:40] NOTICE: 16 GB DDR4, 64-bit, CL=15, ECC on, CS0+CS1 [20:51:40] INFO: Time used by DDR driver 2054 ms [20:51:40] NOTICE: BL2: v1.5(debug):LSDK-20.04-update-290520-dirty [20:51:40] NOTICE: BL2: Built : 14:02:54, Dec 22 2020 [20:51:40] INFO: Configuring TrustZone Controller [20:51:40] INFO: Value of region base = ffe00000 [20:51:40] INFO: Value of region base = 1ffe00000 [20:51:40] INFO: Value of region base = fbe00000 [20:51:40] INFO: Value of region base = c80000000 [20:51:40] INFO: BL2: Doing platform setup RESET_REQ_B (ls1046 out) 7sec PORRESET_B (ls1046 in) It was confirmed that RESET_REQ_B as shown in the figure was output from LS1046A when it was restarted. In other words, it seems that this triggered a reset and restarted.
Disable LS1046ARDB Watchdog driver Default is ON, so turn it OFF Disable Watch Dog Timer Support in Kernel configure. After booting, make sure the / sys / class / watchdog folder does not exist. Make sure there is no watchdog process in ps aux. -Even if WDT is disabled, it rarely restarts. Isn't that a WDT issue? Kernel configure Device Drivers ---> [*] Watchdog Timer Support ---> <*> IMX2+ Watchdog Device tree IMX2 Watchdog Timer: arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi Only WDOG1 is used in LSDK20.04 of LS1046ARDB, and WDOG0,2,3,4 are unused. wdog0: watchdog@2ad0000 { compatible = "fsl,imx21-wdt"; reg = <0x0 0x2ad0000 0x0 0x10000>; interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clockgen 4 1>; big-endian; }; Source files drivers/watchdog/imx2_wdt.c
Appendix shutdown.ttl ; set username UsernamePrompt = 'login:' Username = 'root' PasswordPrompt = 'Password:' Password = 'root' CommandPrompt = 'root@localhost:~#' Command = 'shutdown -h now' WiFi Smart Plug AC LS1046A RDB PC V 100V console Adapter (teraterm) do ; login wait UsernamePrompt sendln Username Smart Life (iphone) wait PasswordPrompt sendln Password wait CommandPrompt sendln Command TECKIN SP11 loop 2minON->1minOFF->2minON .... repeat