Disabled serial debug console suspend/resume problem

This is a device tree I’m using with only jetpack 4.2.1 installed

#include "tegra186-quill-p3310-1000-c03-00-base.dts"
#include "gpioexp.h"

/ {
	nvidia,dtsfilename = "tegra186-quill-p3310-mySerialSleepBug.dts";
	nvidia,dtbbuildtime = __DATE__, __TIME__;

nvidia,boardids = "3310:0000:C03";
nvidia,proc-boardid = "3310:0000:C03";

	gpio-keys {
		power {
			/delete-property/ gpio-key,wakeup;
		};
		
		volume_up {
			wakeup-source;
			linux,code = <0x13>;
		};
		
		volume_down {
			linux,code = <0x21>;
			wakeup-source;
		};
	};

	//Move debug comms off UART1_on_SOM (D9/10)
	serial@3100000 {
		/delete-property/ console-port;
	};

	/* Disable unused stuff inherited from nVidia base DTS included above */
	/delete-node/ plugin-manager;

#if 0
	serial@c280000 {
		compatible = "nvidia,tegra20-uart", "nvidia,tegra186-hsuart";
		status = "okay";
		console-port;
	};
#endif

	chosen {
		bootargs = "androidboot.presilicon=true firmware_class.path=/etc/firmware";
		stdout-path = "/serial@c280000:115200n8";
	};
};

When I use this the system goes to sleep ok with a systemctl suspend. I can see LEDs on the devkit come on when I press VOL as I’ve set it to be a wake source, but the system does not fully wake. It doesn’t re-establish a network link over ethernet, neither does it establish a link over USB OTG.

Can someone from Nvidia explain why the TX2 only seems to wake fully when the debug serial is enabled on ttyS0? (I’ve been able to successfully move the debug console to other serial ports yet the the problem remains).

It’s critical I achieve this, the serial port is exposed to an external connector on a custom carrier board & needs to be used for other purposes than debug.

hannaBarbera

could you please also share the kernel messages about below,
thanks

attaching log files:

kernelMessagesNoChanges.txt (80.2 KB)
kernelMessagesConsoleChanges.txt (75.5 KB)

these were captures over an ssh link. Can’t capture from the serial port debug because the point of the exercise is to disable it.

Could you share the log when error happens? You just shared a log which ends when you suspend the device.

But you said the problem is happened when you resume the device.

Where would I find said log?

Could you share the log when error happens? You just shared a log which ends when you suspend the device.

You only shared a log that has nothing wrong. Thus, you should dump the log after you resume the device…

but when I resume the device I can’t communicate with it?

Serial debug is disabled because that’s what I’m trying to achieve. Ethernet connection doesn’t reestablish, neither does USB OTG.

The only way I know of thus far to communicate with the device is to reboot/reset it?

Do you have HDMI monitor?
Not sure if all usb are dead or only the otg mode.

If you cannot operate the usb when resuming, maybe you can try to write a script to help dump dmesg.

Or you can check the syslog too since it would record the kernel log automatically.

Connected yes, display works as expected, turns off on suspend, doesn’t return on resume, no output.

Even hdmi cannot resume?

Then could you check if syslog recorded anything in your next boot up?

kern.log (840.2 KB) syslog (8.8 MB)

Could you help clean up the log and just leave the period that suspend and resume?

Or could you at least point out the timestamp where you start to do the suspend?

I see one suspend log there but the eth0 and display are still active after you resumed it.

Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.880036] tegradc 15210000.nvdisplay: suspend
>Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.101109] tegradc 15210000.nvdisplay: resume
Jan 12 12:06:49 jetpack4dot2dot1 NetworkManager[4547]: [1610453209.8132] dhcp4 (eth0): address 192.168.80.17
Jan 12 12:06:49 jetpack4dot2dot1 NetworkManager[4547]: [1610453209.8132] dhcp4 (eth0): plen 24 (255.255.255.0)
Jan 12 12:06:49 jetpack4dot2dot1 NetworkManager[4547]: [1610453209.8133] dhcp4 (eth0): gateway 192.168.80.8
Jan 12 12:06:49 jetpack4dot2dot1 NetworkManager[4547]: [1610453209.8133] dhcp4 (eth0): lease time 43200
Jan 12 12:06:49 jetpack4dot2dot1 NetworkManager[4547]: [1610453209.8134] dhcp4 (eth0): hostname ‘jetpack4dot2dot1’
Jan 12 12:06:49 jetpack4dot2dot1 NetworkManager[4547]: [1610453209.8134] dhcp4 (eth0): nameserver ‘192.168.80.8’
Jan 12 12:06:49 jetpack4dot2dot1 NetworkManager[4547]: [1610453209.8135] dhcp4 (eth0): state changed unknown -> bound
Jan 12 12:06:49 jetpack4dot2dot1 avahi-daemon[4570]: Joining mDNS multicast group on interface eth0.IPv4 with address 192.168.80.17.
Jan 12 12:06:49 jetpack4dot2dot1 avahi-daemon[4570]: New relevant interface eth0.IPv4 for mDNS.
Jan 12 12:06:49 jetpack4dot2dot1 avahi-daemon[4570]: Registering new address record for 192.168.80.17 on eth0.IPv4.
Jan 12 12:06:49 jetpack4dot2dot1 NetworkManager[4547]: [1610453209.8175] device (eth0): state change: ip-config -> ip-check (reason ‘none’, sys-iface-state: ‘managed’)
Jan 12 12:06:49 jetpack4dot2dot1 NetworkManager[4547]: [1610453209.8198] device (eth0): state change: ip-check -> secondaries (reason ‘none’, sys-iface-state: ‘managed’)
Jan 12 12:06:49 jetpack4dot2dot1 NetworkManager[4547]: [1610453209.8205] device (eth0): state change: secondaries -> activated (reason ‘none’, sys-iface-state: ‘managed’)
Jan 12 12:06:49 jetpack4dot2dot1 NetworkManager[4547]: [1610453209.8209] manager: NetworkManager state is now CONNECTED_LOCAL
Jan 12 12:06:49 jetpack4dot2dot1 NetworkManager[4547]: [1610453209.8244] manager: NetworkManager state is now CONNECTED_SITE
Jan 12 12:06:49 jetpack4dot2dot1 dhclient[7835]: bound to 192.168.80.17 – renewal in 16659 seconds.
Jan 12 12:06:49 jetpack4dot2dot1 NetworkManager[4547]: [1610453209.8251] policy: set ‘Wired connection 1’ (eth0) as default for IPv4 routing and DNS
Jan 12 12:06:49 jetpack4dot2dot1 NetworkManager[4547]: [1610453209.8295] device (eth0): Activation: successful, device activated.

searching kern.log for “wl_android_wifi_off” I think is a better marker for when the system is attempting to sleep rather than “tegradc 15210000.nvdisplay: suspend”.

I’m guessing that the system hasn’t finished writing it’s log entries at the point it suspends i.e. in an ideal world the log would have “Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] Entered SC7” written to it just before it actually enters SC7. However I don’t believe it has & said entry is only written to the logs on resume, were, presumably any cached log entries are committed to files.

I suspect you can see this in part from the terminal dumps I posted earlier were even though dmesg is running in the background, it’s content only shows up on resume.

Lines that contain Booting in them seem to be the first line written to kern.log on boot up. There are 5 instances of boots in kern.log.

Lines that contain DTS File Name show up twice per boot & denote the difference between a standard Jetpack 4.2.1 install & boots that are using the device-tree modifications I outlined above:

Line 84: Jan 11 21:01:50 jetpack4dot2dot1 kernel: [ 0.163652] DTS File Name: /dvs/git/dirty/git-master_linux/kernel/kernel-4.9/arch/arm64/boot/dts/…/…/…/…/…/…/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-base.dts
Line 133: Jan 11 21:01:50 jetpack4dot2dot1 kernel: [ 0.416878] DTS File Name: /dvs/git/dirty/git-master_linux/kernel/kernel-4.9/arch/arm64/boot/dts/…/…/…/…/…/…/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-base.dts
Line 3638: Jan 12 12:03:25 jetpack4dot2dot1 kernel: [ 0.163636] DTS File Name: /dvs/git/dirty/git-master_linux/kernel/kernel-4.9/arch/arm64/boot/dts/…/…/…/…/…/…/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-base.dts
Line 3687: Jan 12 12:03:25 jetpack4dot2dot1 kernel: [ 0.416911] DTS File Name: /dvs/git/dirty/git-master_linux/kernel/kernel-4.9/arch/arm64/boot/dts/…/…/…/…/…/…/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-base.dts
Line 4902: Jan 12 12:12:28 jetpack4dot2dot1 kernel: [ 0.161288] DTS File Name: tegra186-quill-p3310-mySerialSleepBug.dts
Line 4951: Jan 12 12:12:28 jetpack4dot2dot1 kernel: [ 0.402316] DTS File Name: tegra186-quill-p3310-mySerialSleepBug.dts
Line 5826: Jan 13 10:28:42 jetpack4dot2dot1 kernel: [ 0.161340] DTS File Name: tegra186-quill-p3310-mySerialSleepBug.dts
Line 5875: Jan 13 10:28:42 jetpack4dot2dot1 kernel: [ 0.402340] DTS File Name: tegra186-quill-p3310-mySerialSleepBug.dts
Line 6743: Jan 13 10:45:06 jetpack4dot2dot1 kernel: [ 0.161323] DTS File Name: tegra186-quill-p3310-mySerialSleepBug.dts

Successful suspend/resume instances can be found by search for SC7:

Line 4622: Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] Entered SC7
Line 4636: Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] Exited SC7

Note that from line 4902 onwards, the kernel is using the modified device-tree that disables the serial debug console. The example of SC7 above has line number references less than 4902.

The full kernel log for a suspend/resume cycle looks to me like the following:

Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.145429] tegradc 15210000.nvdisplay: blank - powerdown
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.167713] wl_android_wifi_off in
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.168705] dhd_wlfc_deinit():3472, maintain HOST RXRERODER flag in tvl
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.169100] dhdsdio_isr : bus is down. we have nothing to do
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.169128] gpio tegra-gpio-aon wake69 for gpio=59(FF:3)
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.169129] Disabling wake69
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.169208] sdhci-tegra 3440000.sdhci: Tuning done, restoring the best tap value : 67
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.170248] wifi_platform_set_power = 0
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.205441] extcon-disp-state external-connection:disp-state: cable 47 state 0
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.205444] Extcon AUX1(HDMI) disable
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.227625] tegra_nvdisp_handle_pd_disable: Powergated Head2 pd
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.227810] tegra_nvdisp_handle_pd_disable: Powergated Head1 pd
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.228476] tegra_nvdisp_handle_pd_disable: Powergated Head0 pd
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.419908] CFGP2P-ERROR) wl_cfgp2p_del_p2p_disc_if :
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.419913] P2P interface unregistered
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.529262] PM: suspend entry 2021-01-12 12:06:20.690020694 UTC
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.529266] PM: Syncing filesystems … done.
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.555513] PM: Preparing system for sleep (mem)
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.556079] tegradc 15210000.nvdisplay: unblank
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.557313] tegra_nvdisp_handle_pd_enable: Unpowergated Head0 pd
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.557425] tegra_nvdisp_handle_pd_enable: Unpowergated Head1 pd
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.557506] tegra_nvdisp_handle_pd_enable: Unpowergated Head2 pd
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.558956] Parent Clock set for DC plld2
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.562372] tegradc 15210000.nvdisplay: hdmi: tmds rate:146250K prod-setting:prod_c_hdmi_111m_223m
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.563819] tegradc 15210000.nvdisplay: hdmi: get RGB quant from EDID.
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.563868] tegradc 15210000.nvdisplay: hdmi: get YCC quant from EDID.
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.599101] extcon-disp-state external-connection:disp-state: cable 47 state 1
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.599104] Extcon AUX1(HDMI) enable
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.618913] tegradc 15210000.nvdisplay: unblank
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.651651] tegradc 15210000.nvdisplay: blank - powerdown
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.724425] extcon-disp-state external-connection:disp-state: cable 47 state 0
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.724428] Extcon AUX1(HDMI) disable
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.736426] tegra_nvdisp_handle_pd_disable: Powergated Head2 pd
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.736514] tegra_nvdisp_handle_pd_disable: Powergated Head1 pd
Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.737004] tegra_nvdisp_handle_pd_disable: Powergated Head0 pd
Jan 12 12:06:23 jetpack4dot2dot1 kernel: [ 181.744650] tegradc 15210000.nvdisplay: blank - powerdown
Jan 12 12:06:23 jetpack4dot2dot1 kernel: [ 181.744669] tegradc 15210000.nvdisplay: unblank
Jan 12 12:06:23 jetpack4dot2dot1 kernel: [ 181.745266] tegra_nvdisp_handle_pd_enable: Unpowergated Head0 pd
Jan 12 12:06:23 jetpack4dot2dot1 kernel: [ 181.745351] tegra_nvdisp_handle_pd_enable: Unpowergated Head1 pd
Jan 12 12:06:23 jetpack4dot2dot1 kernel: [ 181.745430] tegra_nvdisp_handle_pd_enable: Unpowergated Head2 pd
Jan 12 12:06:23 jetpack4dot2dot1 kernel: [ 181.746752] Parent Clock set for DC plld2
Jan 12 12:06:23 jetpack4dot2dot1 kernel: [ 181.749886] tegradc 15210000.nvdisplay: hdmi: tmds rate:146250K prod-setting:prod_c_hdmi_111m_223m
Jan 12 12:06:23 jetpack4dot2dot1 kernel: [ 181.751098] tegradc 15210000.nvdisplay: hdmi: get RGB quant from EDID.
Jan 12 12:06:23 jetpack4dot2dot1 kernel: [ 181.751103] tegradc 15210000.nvdisplay: hdmi: get YCC quant from EDID.
Jan 12 12:06:23 jetpack4dot2dot1 kernel: [ 181.789861] extcon-disp-state external-connection:disp-state: cable 47 state 1
Jan 12 12:06:23 jetpack4dot2dot1 kernel: [ 181.789863] Extcon AUX1(HDMI) enable
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.838932] Freezing user space processes … (elapsed 0.002 seconds) done.
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.841320] Freezing remaining freezable tasks … (elapsed 0.001 seconds) done.
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.842738] PM: Suspending system (mem)
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.846199] nvlogger_suspend_work
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.847706] sdhci-tegra 3400000.sdhci: Tuning done, restoring the best tap value : 84
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.847709] usb usb2: usb_suspend_both: status 0
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.847730] usb usb1: usb_suspend_both: status 0
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.849013] Wake24 for irq=241
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.849018] Enabling wake24
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.849764] nct1008_nct72 7-004c: success in disabling tmp451 VDD rail
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.849825] gpio tegra-gpio-aon wake29 for gpio=56(FF:0)
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.849827] Enabling wake29
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.850009] gpio tegra-gpio wake53 for gpio=159(X:7)
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.850011] Enabling wake53
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.869718] tegra-xudc-new 3550000.xudc: device mode off: 0
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.870041] tegra-xudc-new 3550000.xudc: ep 3 disabled
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.870059] tegra-xudc-new 3550000.xudc: ep 2 disabled
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.870074] tegra-xudc-new 3550000.xudc: ep 5 disabled
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.870088] tegra-xudc-new 3550000.xudc: ep 4 disabled
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.870101] tegra-xudc-new 3550000.xudc: ep 7 disabled
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.870127] tegra-xudc-new 3550000.xudc: ep 9 disabled
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.870146] tegra-xudc-new 3550000.xudc: ep 13 disabled
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.870163] tegra-xudc-new 3550000.xudc: ep 8 disabled
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.870178] tegra-xudc-new 3550000.xudc: ep 15 disabled
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.870277] android_work: sent uevent USB_STATE=DISCONNECTED
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.870307] tegra-usb-cd usb_cd: notification status (0x1, 0x0)
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.870310] tegra-usb-cd usb_cd: disconnected USB cable/charger
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.870317] tegra-xudc-new 3550000.xudc: entering ELPG
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.870350] l4tbr0: port 1(rndis0) entered disabled state
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.870441] l4tbr0: port 2(usb0) entered disabled state
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.872013] tegra-xudc-new 3550000.xudc: entering ELPG done
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.872027] tegra-xusb 3530000.xhci: exiting ELPG
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.875685] tegra-xusb 3530000.xhci: Firmware timestamp: 2018-12-26 10:30:04 UTC, Version: 55.12 release
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.876711] tegra-xusb 3530000.xhci: exiting ELPG done
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.876714] tegra-xusb 3530000.xhci: entering ELPG
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.879924] tegra-xusb 3530000.xhci: entering ELPG done
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.879931] Wake76 for irq=199
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.879933] Wake77 for irq=199
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.879935] Wake78 for irq=199
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.879936] Wake79 for irq=199
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.879938] Wake80 for irq=199
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.879940] Wake81 for irq=199
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.879941] Wake82 for irq=199
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.879943] Enabling wake76
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.879945] Enabling wake77
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.879946] Enabling wake78
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.879948] Enabling wake79
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.879949] Enabling wake80
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.879951] Enabling wake81
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.879952] Enabling wake82
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.879982] Wake73 for irq=42
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.879984] Enabling wake73
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.880036] tegradc 15210000.nvdisplay: suspend
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.887035] extcon-disp-state external-connection:disp-state: cable 47 state 0
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.887039] Extcon AUX1(HDMI) disable
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.942679] tegra_nvdisp_handle_pd_disable: Powergated Head2 pd
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.942762] tegra_nvdisp_handle_pd_disable: Powergated Head1 pd
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.943727] tegra_nvdisp_handle_pd_disable: Powergated Head0 pd
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.944699] sdhci-tegra 3400000.sdhci: Tuning done, restoring the best tap value : 84
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.944742] gpio tegra-gpio wake71 for gpio=125(P:5)
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.944744] Enabling wake71
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.945079] sdhci-tegra 3440000.sdhci: Tuning done, restoring the best tap value : 67
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.945603] PM: suspend of devices complete after 99.482 msecs
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.948093] host1x 13e10000.host1x: suspended
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.948182] PM: late suspend of devices complete after 2.573 msecs
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.950170] PM: noirq suspend of devices complete after 1.980 msecs
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.950175] Disabling non-boot CPUs …
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.969633] CPU3: shutdown
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.972367] psci: CPU3 killed.
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.993561] CPU4: shutdown
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 184.996294] psci: CPU4 killed.
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.029513] CPU5: shutdown
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.032243] psci: CPU5 killed.
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] Entered SC7
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] Wake[31-0] level=0x40200000
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] Wake[63-32] level=0x200000
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] Wake[95-64] level=0x7f2a0
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] Wake[31-0] enable=0x21000000
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] Wake[63-32] enable=0x200000
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] Wake[95-64] enable=0x7f280
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] Wake[31-0] route=0x21000000
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] Wake[63-32] route=0x200000
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] Wake[95-64] route=0x7f280
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] Wake[32:0] status=0x20000000
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] Resume caused by WAKE29, Power
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] Wake[64:32] status=0x0
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] Wake[96:64] status=0x0
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] Exited SC7
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] bpmp: waiting for handshake
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] bpmp: synchronizing channels
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] bpmp: channels synchronized
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034355] Suspended for 23.379 seconds
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034465] Enabling non-boot CPUs …
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034672] CPU3: Booted secondary processor [411fd073]
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.034815] cache: parent cpu3 should not be sleeping
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.040289] CPU3 is up
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.040496] CPU4: Booted secondary processor [411fd073]
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.040592] cache: parent cpu4 should not be sleeping
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.046039] CPU4 is up
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.046230] CPU5: Booted secondary processor [411fd073]
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.046344] cache: parent cpu5 should not be sleeping
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.051995] CPU5 is up
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.081187] tegra-xusb 3530000.xhci: exiting ELPG
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.083893] tegra-xusb 3530000.xhci: Firmware timestamp: 2018-12-26 10:30:04 UTC, Version: 55.12 release
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.084836] tegra-xusb 3530000.xhci: exiting ELPG done
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.085792] PM: noirq resume of devices complete after 33.755 msecs
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.088642] host1x 13e10000.host1x: resuming
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.089272] PM: early resume of devices complete after 3.249 msecs
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.097031] sdhci-tegra 3440000.sdhci: Tuning done, restoring the best tap value : 67
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.097120] sdhci-tegra 3440000.sdhci: Tuning done, restoring the best tap value : 67
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.097327] gpio tegra-gpio wake71 for gpio=125(P:5)
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.097330] Disabling wake71
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.097341] nvlogger_resume_work
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.099777] sdhci-tegra 3400000.sdhci: Tuning done, restoring the best tap value : 84
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.099869] sdhci-tegra 3400000.sdhci: Tuning done, restoring the best tap value : 84
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.101109] tegradc 15210000.nvdisplay: resume
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.101131] Wake73 for irq=42
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.101133] Disabling wake73
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.101171] Wake76 for irq=199
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.101173] Wake77 for irq=199
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.101174] Wake78 for irq=199
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.101175] Wake79 for irq=199
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.101177] Wake80 for irq=199
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.101178] Wake81 for irq=199
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.101179] Wake82 for irq=199
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.101181] Disabling wake76
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.101182] Disabling wake77
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.101183] Disabling wake78
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.101184] Disabling wake79
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.101185] Disabling wake80
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.101187] Disabling wake81
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.101188] Disabling wake82
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.101201] tegra-xudc-new 3550000.xudc: exiting ELPG
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.102582] tegra-xudc-new 3550000.xudc: exiting ELPG done
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.102588] tegra-xudc-new 3550000.xudc: vbus state: 1
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.193441] tegra-usb-cd usb_cd: notification status (0x0, 0x1)
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.193444] tegra-usb-cd usb_cd: connected to SDP
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.193452] tegra-xudc-new 3550000.xudc: device mode on: 0
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.193613] tegra-xudc-new 3550000.xudc: active: 0 => 1
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.218900] tegradc 15210000.nvdisplay: read_edid_into_buffer: extension_blocks = 1, max_ext_blocks = 3
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.222196] gpio tegra-gpio wake53 for gpio=159(X:7)
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.222199] Disabling wake53
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.223896] extcon-gpio-states external-connection:extcon@1: Cable state:1, cable id:1
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.223947] gpio tegra-gpio-aon wake29 for gpio=56(FF:0)
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.223949] Disabling wake29
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.225332] nct1008_nct72 7-004c: success in enabling tmp451 VDD rail
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.234661] tegradc 15210000.nvdisplay: hdmi_recheck_edid: read_edid_into_buffer() returned 256
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.234666] tegradc 15210000.nvdisplay: old edid len = 256
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.234670] tegradc 15210000.nvdisplay: hdmi: No EDID change after HPD bounce, taking no action
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.235270] tegra_nvdisp_handle_pd_enable: Unpowergated Head0 pd
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.235362] tegra_nvdisp_handle_pd_enable: Unpowergated Head1 pd
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.235450] tegra_nvdisp_handle_pd_enable: Unpowergated Head2 pd
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.236799] Parent Clock set for DC plld2
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.240020] tegradc 15210000.nvdisplay: hdmi: tmds rate:146250K prod-setting:prod_c_hdmi_111m_223m
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.241106] tegradc 15210000.nvdisplay: hdmi: get RGB quant from EDID.
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.241115] tegradc 15210000.nvdisplay: hdmi: get YCC quant from EDID.
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.256989] nct1008_nct72 7-004c: LOC shutdown limit 107
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.257505] nct1008_nct72 7-004c: EXT shutdown limit 107
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.276283] extcon-disp-state external-connection:disp-state: cable 47 state 1
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.276285] Extcon AUX1(HDMI) enable
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.289405] nct1008_nct72 7-004c: initial LOC temp: 29000
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.289719] nct1008_nct72 7-004c: initial EXT temp: 30500
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.290318] nct1008_nct72 7-004c: hi_b:-11, lo_b:0
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.291923] Wake24 for irq=241
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.291925] Disabling wake24
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.365555] sdhci-tegra 3400000.sdhci: Tuning done, restoring the best tap value : 84
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.365599] PM: resume of devices complete after 276.215 msecs
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.369890] PM: Finishing wakeup.
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.369896] Restarting tasks …
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.370827] tegra-xudc-new 3550000.xudc: ep 11 disabled
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.370841] tegra-xudc-new 3550000.xudc: ep 6 disabled
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.371488] done.
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.371879] usb usb2: usb_suspend_both: status 0
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.371966] usb usb1: usb_suspend_both: status 0
Jan 12 12:06:47 jetpack4dot2dot1 kernel: [ 185.393559] PM: suspend exit 2021-01-12 12:06:47.932073653 UTC

When the system suspends with a disabled serial debug console, the logs do not contain as much information as above as I believe the system experiences a crash on the resume signal; before it writes cached log data from before/during the suspend.

Lines that contain wl_android_wifi_off show subsequent attempts to suspend (using sudo systemctl suspend); lines 4504, 5729 & 6646. There are 3 attempts to suspend/resume in this kern.log & only the first one successfully resumed.

Lines 5743 & 6660 are the following reboots from the failed attempts to resume.

So timestamps of attempts to suspend/resume are Jan 12 12:06:20, Jan 12 12:12:58 & Jan 13 10:30:20.

Hi,

I appreciate your analysis but there are still something confuse me too.

  1. I don’t quite understand what did you want to say in below comment. Are you trying to say some logs are not worthy of checking?

Note that from line 4902 onwards, the kernel is using the modified device-tree that disables the serial debug console. The example of SC7 above has line number references less than 4902.

  1. Also, if the uart log is disabled, no HDMI and no usb device mode can be used, how did you dump this dmesg? Do you write some script to record this log and dump it later when system is normal?

And back to the issue itself, according to your log, it seems you agree that suspend & resume time is Jan 12 12:06:20 and Jan 12 12:06:47 too, right?

If that is correct, then it matches what I said in previous comment. The nvdisplay gives no error and eth0 gives no error.
These two interfaces should at least work if the log does not cheat.

Jan 12 12:06:49 jetpack4dot2dot1 kernel: [ 187.088348] tegra-xusb 3530000.xhci: entering ELPG done
Jan 12 12:06:49 jetpack4dot2dot1 NetworkManager[4547]: [1610453209.6305] device (eth0): carrier: link connected
Jan 12 12:06:49 jetpack4dot2dot1 kernel: [ 187.091302] eqos 2490000.ether_qos eth0: Link is Up - 100Mbps/Full - flow control rx/tx

Can we confirm your software release and hardware? Is it jetpack4.2.1 and NV developer kit?
If you are using devkit, could you check if the LED on RJ45 ethernet port gets light up when you resume the device?

I’m saying that the only instance in the logs of a successful suspend/resume cycle as indicated by the presence of “SC7” occurs before the device-tree change occurs. The subsequent absence of “SC7” in the logs despite the system suspending indicates a problem occurred.

I rebooted the system & copied kern.log & syslog from /var/log.

I agree that of the three suspend attempts there are in the log, the 1st one occurs at Jan 12 12:06:20.

Line 4504: Jan 12 12:06:20 jetpack4dot2dot1 kernel: [ 181.167713] wl_android_wifi_off in
Line 5729: Jan 12 12:12:58 jetpack4dot2dot1 kernel: [ 36.777814] wl_android_wifi_off in
Line 6646: Jan 13 10:30:20 jetpack4dot2dot1 kernel: [ 106.165333] wl_android_wifi_off in

Yes I’m using Jetpack 4.2.1. Yes I’m using the NV developer kit. When the system suspends the lights on the RJ45 connector & LED CR1 turn off. When the resume occurs LED CR1 turns on, the RJ45 LEDs remain off.

ok. We will use our devkit to test tomorrow. Thanks for info.

1 Like

Hi,

We cannot reproduce your issue with the dtb modified and latest jetpack4.4.1.

I create similar dtb as yours, but didn’t delete the plugin-manager. Please try your dtb without deleting plugin-manager and jetpack4.4.1.

Thanks.

Update:

I cannot reproduce your issue even with rel-32.2.x (jetpack4.2.2).

I create similar dtb as yours, but didn’t delete the plugin-manager. Please try your dtb without deleting plugin-manager and jetpack4.4.1.

Tried that, no change in behaviour, device still doesn’t resume beyond lighting LED CR1.

We cannot reproduce your issue with the dtb modified and latest jetpack4.4.1

I was able to reproduce the problem on 4.4.1 but I had to take additional steps so that the serial debug console was actually disabled. Here’s the details:

With a fresh 4.4.1 install & the modified device-tree in place, I was able to observe this:

nvidia@nvidia-desktop:~$ dmesg | grep ttyS0
[    0.000000] Kernel command line: root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=tty0 fbcon=map:0 net.ifnames=0 vi4_fops.dyndbg channel.dyndbg csi4_fops.dyndbg csi.dyndbg camera_common.dyndbg graph.dyndbg tc358840.dyndbg debug root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2  video=tegrafb no_console_suspend=1 earlycon=uart8250,mmio32,0x3100000 nvdumper_reserved=0x2772e0000 gpt usbcore.old_scheme_first=1 tegraid=18.1.2.0.0 maxcpus=6 boot.slot_suffix= boot.ratchetvalues=0.2031647.1 bl_prof_dataptr=0x10000@0x275840000 sdhci_tegra.en_boot_part_access=1 quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2 
[    0.930123] console [ttyS0] disabled
[    0.930144] 3100000.serial: ttyS0 at MMIO 0x3100000 (irq = 36, base_baud = 25500000) is a Tegra
[    0.930177] console [ttyS0] enabled
[    1.973466] systemd-getty-generator[2084]: Automatically adding serial getty for /dev/ttyS0.

Note that the serial debug console is still enabled despite the device-tree change. For comparision, this is observed on the 4.2.1 Jetson:

nvidia@jetpack4dot2dot1:~$ dmesg | grep ttyS0
[    1.022469] 3100000.serial: ttyS0 at MMIO 0x3100000 (irq = 36, base_baud = 25500000) is a Tegra

Sure ttyS0 is still there, but it’s not being used as a console.

You can further confirm that ttyS0 is not being used as a console (beyond looking at what’s coming out of the serial port!) by the following:

nvidia@jetpack4dot2dot1:~$ cat /proc/consoles 
tty0                 -WU (EC    )    4:1
pstore-1             -W- (E  p a)

I know that you can enable/disable serial debug ports on the kernel cmdline, nvidia@jetpack4dot2dot1:~$ grep ttyS0 /proc/cmdline yielded no results.

For reference this is what /boot/extlinux/extlinux.conf looks lik on my fresh 4.2.1 install:

nvidia@jetpack4dot2dot1:~$ cat /boot/extlinux/extlinux.conf 
TIMEOUT 30
DEFAULT primary

MENU TITLE L4T boot options

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      INITRD /boot/initrd
      APPEND ${cbootargs} quiet

# When testing a custom kernel, it is recommended that you create a backup of
# the original kernel and add a new entry to this file so that the device can
# fallback to the original kernel. To do this:
#
# 1, Make a backup of the original kernel
#      sudo cp /boot/Image /boot/Image.backup
#
# 2, Copy your custom kernel into /boot/Image
#
# 3, Uncomment below menu setting lines for the original kernel
#
# 4, Reboot

# LABEL backup
#    MENU LABEL backup kernel
#    LINUX /boot/Image.backup
#    INITRD /boot/initrd
#    APPEND ${cbootargs}

So hopping back over to the fresh 4.4.1 install (with the modified device-tree) & looking at the same files:

nvidia@nvidia-desktop:~$ cat /boot/extlinux/extlinux.conf 
TIMEOUT 30
DEFAULT primary

MENU TITLE L4T boot options

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      INITRD /boot/initrd
      APPEND ${cbootargs} quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2 

# When testing a custom kernel, it is recommended that you create a backup of
# the original kernel and add a new entry to this file so that the device can
# fallback to the original kernel. To do this:
#
# 1, Make a backup of the original kernel
#      sudo cp /boot/Image /boot/Image.backup
#
# 2, Copy your custom kernel into /boot/Image
#
# 3, Uncomment below menu setting lines for the original kernel
#
# 4, Reboot

# LABEL backup
#    MENU LABEL backup kernel
#    LINUX /boot/Image.backup
#    INITRD /boot/initrd
#    APPEND ${cbootargs}

nvidia@nvidia-desktop:~$ grep ttyS0 /proc/cmdline 
root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=tty0 fbcon=map:0 net.ifnames=0 vi4_fops.dyndbg channel.dyndbg csi4_fops.dyndbg csi.dyndbg camera_common.dyndbg graph.dyndbg tc358840.dyndbg debug root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2  video=tegrafb no_console_suspend=1 earlycon=uart8250,mmio32,0x3100000 nvdumper_reserved=0x2772e0000 gpt usbcore.old_scheme_first=1 tegraid=18.1.2.0.0 maxcpus=6 boot.slot_suffix= boot.ratchetvalues=0.2031647.1 bl_prof_dataptr=0x10000@0x275840000 sdhci_tegra.en_boot_part_access=1 quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2

nvidia@nvidia-desktop:~$ cat /proc/consoles
tty0                 -WU (EC    )    4:1
ttyS0                -W- (E  p a)    4:64
pstore-1             -W- (E  p a)

We can see that a fresh 4.4.1 install enables ttyS0 as console via the kernel cmdline and of course you can see the debug console coming out of the serial port.

I edited /boot/extlinux/extlinx.conf to look like:

nvidia@nvidia-desktop:~$ cat /boot/extlinux/extlinux.conf 
TIMEOUT 30
DEFAULT primary

MENU TITLE L4T boot options

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      INITRD /boot/initrd
      APPEND root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=tty0 fbcon=map:0 net.ifnames=0 vi4_fops.dyndbg channel.dyndbg csi4_fops.dyndbg csi.dyndbg camera_common.dyndbg graph.dyndbg tc358840.dyndbg debug root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2  video=tegrafb no_console_suspend=1 earlycon=uart8250,mmio32,0x3100000 nvdumper_reserved=0x2772e0000 gpt usbcore.old_scheme_first=1 tegraid=18.1.2.0.0 maxcpus=6 boot.slot_suffix= boot.ratchetvalues=0.2031647.1 bl_prof_dataptr=0x10000@0x275840000 sdhci_tegra.en_boot_part_access=1 quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2 

# When testing a custom kernel, it is recommended that you create a backup of
# the original kernel and add a new entry to this file so that the device can
# fallback to the original kernel. To do this:
#
# 1, Make a backup of the original kernel
#      sudo cp /boot/Image /boot/Image.backup
#
# 2, Copy your custom kernel into /boot/Image
#
# 3, Uncomment below menu setting lines for the original kernel
#
# 4, Reboot

# LABEL backup
#    MENU LABEL backup kernel
#    LINUX /boot/Image.backup
#    INITRD /boot/initrd
#    APPEND ${cbootargs}

with the following results:

nvidia@nvidia-desktop:~$ cat /proc/consoles 
tty0                 -WU (EC    )    4:1
pstore-1             -W- (E  p a)

nvidia@nvidia-desktop:~$ grep ttyS0 /proc/cmdline 
nvidia@nvidia-desktop:~$ cat /proc/cmdline 
root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=tty0 fbcon=map:0 net.ifnames=0 vi4_fops.dyndbg channel.dyndbg csi4_fops.dyndbg csi.dyndbg camera_common.dyndbg graph.dyndbg tc358840.dyndbg debug root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2  video=tegrafb no_console_suspend=1 earlycon=uart8250,mmio32,0x3100000 nvdumper_reserved=0x2772e0000 gpt usbcore.old_scheme_first=1 tegraid=18.1.2.0.0 maxcpus=6 boot.slot_suffix= boot.ratchetvalues=0.2031647.1 bl_prof_dataptr=0x10000@0x275840000 sdhci_tegra.en_boot_part_access=1 quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2 

With no debug coming out of the serial port I once again performed a systemctl suspend, on providing the wake signal again LED CR1 lit & the lights on the ethernet sockets remained on but sadly, that was the only change. The device was non-responsive over ethernet, it did not respond to pings, the device was no longer accessible over USB OTG & just as before there was no activity on the HDMI display.

To help with testing I’m uploading the dtb I’m using.

tegra186-quill-p3310-1000-c03-00-base_sigheader.dtb.encrypt (233.6 KB)