Hi everyone!
We need hibernation functionality, but Jetson Nano doesn’t support it out of the box, so we decided to add it.
What we did (simplifying):
- downloaded official image, wrote it to 64GB card
- edited partitions (added 8GB swap)
- downloaded L4T Driver Package (BSP) Sources
- edited kernel (turn on hibernation)
- appended resume=/dev/ to /boot/extlinux/extlinux.conf
After this steps we get:
~$ cat /sys/power/state
freeze disk
And we can hibernate:
~$ echo disk > /sys/power/state
After this system was successfully shut down. But the next boot halted the system.
Can anyone suggest ideas for solving this problem?
Device UART shutdown log output:
~$ echo disk > /sys/power/state
[ 98.794455] IRQ10 no longer affine to CPU1
[ 98.798944] CPU1: shutdown
[ 98.834351] IRQ11 no longer affine to CPU2
[ 98.838878] CPU2: shutdown
[ 98.866286] IRQ12 no longer affine to CPU3
[ 98.870883] CPU3: shutdown
[ 98.882733] cache: parent cpu1 should not be sleeping
[ 98.889288] cache: parent cpu2 should not be sleeping
[ 98.895631] cache: parent cpu3 should not be sleeping
[ 98.910686] mc-err: vpr base=0:d7000000, size=20, ctrl=3, override:(e4bac343, 1ed3, 2a800000, 2)
[ 98.919681] mc-err: (255) csr_mpcorer: MC request violates VPR requirements
[ 98.926748] mc-err: status = 0x00000027; addr = 0xd7000000
[ 98.932462] mc-err: secure: no, access-type: read, SMMU fault: none
[ 113.679171] IRQ10 no longer affine to CPU1
[ 113.683508] CPU1: shutdown
[ 113.720144] IRQ11 no longer affine to CPU2
[ 113.724629] CPU2: shutdown
[ 113.754347] IRQ12 no longer affine to CPU3
[ 113.762123] CPU3: shutdown
[ 113.769142] reboot: Power down
Device UART wake up log output:
[0000.126] [TegraBoot] (version 00.00.2018.01-l4t-33e7fa82)
[0000.131] Processing in cold boot mode Bootloader 2
[0000.136] A02 Bootrom Patch rev = 1023
[0000.139] Power-up reason: pmc por
[0000.142] No Battery Present
[0000.145] pmic max77620 reset reason
[0000.148] pmic max77620 NVERC : 0x60
[0000.152] RamCode = 0
[0000.154] Platform has DDR4 type RAM
[0000.157] max77620 disabling SD1 Remote Sense
[0000.161] Setting DDR voltage to 1125mv
[0000.165] Serial Number of Pmic Max77663: 0x83ae4
[0000.173] Entering ramdump check
[0000.176] Get RamDumpCarveOut = 0x0
[0000.179] RamDumpCarveOut=0x0, RamDumperFlag=0xe59ff3f8
[0000.184] Last reboot was clean, booting normally!
[0000.189] Sdram initialization is successful
[0000.193] SecureOs Carveout Base=0x00000000ff800000 Size=0x00800000
[0000.199] Lp0 Carveout Base=0x00000000ff780000 Size=0x00001000
[0000.205] BpmpFw Carveout Base=0x00000000ff700000 Size=0x00080000
[0000.211] GSC1 Carveout Base=0x00000000ff600000 Size=0x00100000
[0000.217] GSC2 Carveout Base=0x00000000ff500000 Size=0x00100000
[0000.223] GSC4 Carveout Base=0x00000000ff400000 Size=0x00100000
[0000.228] GSC5 Carveout Base=0x00000000ff300000 Size=0x00100000
[0000.234] GSC3 Carveout Base=0x000000017f300000 Size=0x00d00000
[0000.250] RamDump Carveout Base=0x00000000ff280000 Size=0x00080000
[0000.256] Platform-DebugCarveout: 0
[0000.260] Nck Carveout Base=0x00000000ff080000 Size=0x00200000
[0000.265] Non secure mode, and RB not enabled.
[0000.272] Invalid GPT Partition
[0000.287] Using BFS PT to query partitions
[0000.291] failed to load NvTbootTbootCpu from (2:0)
[0000.296] re-load NvTbootTbootCpu from (4:0)
[0000.517] Csd NumOfBlocks=125829120
[0000.575] Using GPT Primary to query partitions
[0000.583] Loading Tboot-CPU binary
[0000.958] Verifying TBC in OdmNonSecureSBK mode
[0000.968] Bootloader load address is 0xa0000000, entry address is 0xa0000258
[0000.975] Bootloader downloaded successfully.
[0000.980] Downloaded Tboot-CPU binary to 0xa0000258
[0000.985] MAX77620_GPIO5 configured
[0000.988] CPU power rail is up
[0000.991] CPU clock enabled
[0000.995] Performing RAM repair
[0000.997] Updating A64 Warmreset Address to 0xa00002e9
[0001.003] Loading NvTbootBootloaderDTB
[0002.305] Verifying NvTbootBootloaderDTB in OdmNonSecureSBK mode
[0002.367] Bootloader DTB Load Address: 0x83000000
[0002.371] Loading NvTbootKernelDTB
[0003.674] Verifying NvTbootKernelDTB in OdmNonSecureSBK mode
[0003.735] Kernel DTB Load Address: 0x83100000
[0003.743] Loading cboot binary
[0005.416] Verifying EBT in OdmNonSecureSBK mode
[0005.459] Bootloader load address is 0x92c00000, entry address is 0x92c00258
[0005.466] Bootloader downloaded successfully.
[0005.657] Using BFS PT to query partitions
[0005.661] Next binary entry address: 0x92c00258
[0005.665] BoardId: 3448
[0005.670] Overriding pmu board id with proc board id
[0005.675] Display board id is not available
[0007.164] Verifying SC7EntryFw in OdmNonSecureSBK mode
[0007.217] /bpmp deleted
[0007.219] SC7EntryFw header found loaded at 0xff700000
[0007.410] OVR2 PMIC
[0007.412] Bpmp FW successfully loaded
[0007.428] WB0 init successfully at 0xff780000
[0007.433] Set NvDecSticky Bits
[0007.436] GSC2 address ff53fffc value c0edbbcc
[0007.442] GSC MC Settings done
[0007.448] TOS Image length 53680
[0007.451] Monitor size 53680
[0007.454] OS size 0
[0007.614] Secure Os AES-CMAC Verification Success!
[0007.618] TOS image cipher info: plaintext
[0007.622] Loading and Validation of Secure OS Successful
[0007.638] SC7 Entry Firmware - 0xff700000, 0x4000
[0007.643] NvTbootPackSdramParams: start.
[0007.648] NvTbootPackSdramParams: done.
[0007.652] Tegraboot started after 53278 us
[0007.656] Basic modules init took 5762399 us
[0007.660] NvTbootQspiFlashIoctl: Opcode = 1 not supported
[0007.665] Sec Bootdevice Read Time = 12 ms, Read Size = 65 KB
[0007.671] Sec Bootdevice Write Time = 0 ms, Write Size = 0 KB
[0007.676] Storage Device Read Time = 6698 ms, Read Size = 2306 KB
[0007.682] Storage Device Write Time = 0 ms, Write Size = 0 KB
[0007.687] Next stage binary read took 1520365 us
[0007.692] Carveout took -1532046 us
[0007.695] CPU initialization took 2031845 us
[0007.699] Total time taken by TegraBoot 7782563 us
[0007.704] Starting CPU & Halting co-processor
64NOTICE: BL31: v1.3(release):eca0c5e
NOTICE: BL31: Built : 00:21:27, Mar 13 2019
ERROR: Error initializing runtime service trusty_fast
[0007.826] RamCode = 0
[0007.831] LPDDR4 Training: Read DT: Number of tables = 2
[0007.836] EMC Training (SRC-freq: 204000; DST-freq: 1600000)
[0007.849] EMC Training Successful
[0007.852] 408000 not found in DVFS table
[0007.858] RamCode = 0
[0007.861] DT Write: emc-table@204000 succeeded
[0007.867] DT Write: emc-table@1600000 succeeded
[0007.871] LPDDR4 Training: Write DT: Number of tables = 2
[0008.069]
[0008.070] Debug Init done
[0008.073] Marked DTB cacheable
[0008.076] Bootloader DTB loaded at 0x83000000
[0008.080] Marked DTB cacheable
[0008.083] Kernel DTB loaded at 0x83100000
[0008.087] DeviceTree Init done
[0008.099] Pinmux applied successfully
[0008.104] gicd_base: 0x50041000
[0008.107] gicc_base: 0x50042000
[0008.110] Interrupts Init done
[0008.115] Using base:0x60005090 & irq:208 for tick-timer
[0008.120] Using base:0x60005098 for delay-timer
[0008.124] platform_init_timer: DONE
[0008.128] Timer(tick) Init done
[0008.131] osc freq = 38400 khz
[0008.135]
[0008.136] welcome to cboot
[0008.139]
[0008.140] Cboot Version: 00.00.2018.01-t210-f76b856b
[0008.145] calling constructors
[0008.148] initializing heap
[0008.151] initializing threads
[0008.154] initializing timers
[0008.157] creating bootstrap completion thread
[0008.161] top of bootstrap2()
[0008.164] CPU: ARM Cortex A57
[0008.167] CPU: MIDR: 0x411FD071, MPIDR: 0x80000000
[0008.171] initializing platform
[0008.174] Scratch reg 37 & 271 initial value set..
[0008.181] cboot:secure-pmc present
[0008.184] Manufacturer: MF = 0xc2, ID MSB = 0x25
[0008.189] ID LSB = 0x36, ID-CFI len = 194 bytes
[0008.193] Macronix QSPI chip present
[0008.197] SPI device register
[0008.200] init boot device
[0008.202] allocating memory for boot device(SPI)
[0008.207] registering boot device
[0008.216] sdmmc node status = okay
[0008.219] sdcard instance = 0
[0008.222] sdcard gpio handle 0x5d
[0008.225] sdcard gpio pin 0xc9
[0008.228] sdcard gpio flags 0x0
[0008.231] vmmc-supply 0x9d
[0008.234] Instance: 0
[0008.236] Allocating memory for context
[0008.240] enabling clock
[0008.242] sd card init
[0008.245] Check card present and stable
[0008.248] Send command 0
[0008.265] Send command 3
[0008.269] Set RCA for the card
[0008.272] Query card specific data by command 9
[0008.279] Parse CSD data
[0008.281] Send command 7
[0008.291] Calling sd device register
[0008.295] Init sdcard
[0008.297] Allocating memory for boot device
[0008.301] Registering user device
[0008.314] Enable APE clock
[0008.317] Un-powergate APE partition
[0008.320] of_register: registering tegra_udc to of_hal
[0008.325] of_register: registering tegra_udc to of_hal
[0008.330] of_register: registering inv20628-driver to of_hal
[0008.336] of_register: registering ads1015-driver to of_hal
[0008.342] of_register: registering lp8557-bl-driver to of_hal
[0008.347] of_register: registering bq2419x_charger to of_hal
[0008.353] of_register: registering cpc to of_hal
[0008.358] of_register: registering bq27441_fuel_gauge to of_hal
[0008.369] gpio framework initialized
[0008.372] of_register: registering tca9539_gpio to of_hal
[0008.378] of_register: registering tca9539_gpio to of_hal
[0008.383] of_register: registering i2c_bus_driver to of_hal
[0008.389] of_register: registering i2c_bus_driver to of_hal
[0008.394] of_register: registering i2c_bus_driver to of_hal
[0008.400] of_register: registering i2c_bus_driver to of_hal
[0008.405] pmic framework initialized
[0008.409] of_register: registering max77620_pmic to of_hal
[0008.414] regulator framework initialized
[0008.418] of_register: registering tps65132_bl_driver to of_hal
[0008.424] initializing target
[0008.430] gpio_driver_register: register 'tegra_gpio_driver' driver
[0008.439] fixed regulator driver initialized
[0008.456] initializing OF layer
[0008.459] NCK carveout not present
[0008.463] Skipping dts_overrides
[0008.467] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0008.482] I2C Bus Init done
[0008.485] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0008.495] I2C Bus Init done
[0008.498] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0008.508] I2C Bus Init done
[0008.511] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0008.521] I2C Bus Init done
[0008.524] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0008.534] I2C Bus Init done
[0008.537] of_children_init: Ops found for compatible string maxim,max77620
[0008.547] max77620_init using irq 118
[0008.552] register 'maxim,max77620' pmic
[0008.556] gpio_driver_register: register 'max77620-gpio' driver
[0008.562] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0008.573] I2C Bus Init done
[0008.576] NCK carveout not present
[0008.579] shim_invoke: No NCT, Calling dts updates
[0008.591] Find /i2c@7000c000's alias i2c0
[0008.595] get eeprom at 1-a0, size 256, type 0
[0008.604] Find /i2c@7000c500's alias i2c2
[0008.608] get eeprom at 3-a0, size 256, type 0
[0008.612] get eeprom at 3-ae, size 256, type 0
[0008.617] pm_ids_update: Updating 1,a0, size 256, type 0
[0008.622] I2C slave not started
[0008.625] I2C write failed
[0008.628] Writing offset failed
[0008.631] eeprom_init: EEPROM read failed
[0008.635] pm_ids_update: eeprom init failed
[0008.639] pm_ids_update: Updating 3,a0, size 256, type 0
[0008.669] pm_ids_update: The pm board id is 3448-0000-200
[0008.675] Adding plugin-manager/ids/3448-0000-200=/i2c@7000c500:module@0x50
[0008.683] pm_ids_update: pm id update successful
[0008.688] pm_ids_update: Updating 3,ae, size 256, type 0
[0008.718] pm_ids_update: The pm board id is 3449-0000-200
[0008.724] Adding plugin-manager/ids/3449-0000-200=/i2c@7000c500:module@0x57
[0008.732] pm_ids_update: pm id update successful
[0008.762] eeprom_get_mac: EEPROM invalid MAC address (all 0xff)
[0008.768] shim_eeprom_update_mac:267: Failed to update 0 MAC address in DTB
[0008.776] eeprom_get_mac: EEPROM invalid MAC address (all 0xff)
[0008.782] shim_eeprom_update_mac:267: Failed to update 1 MAC address in DTB
[0008.790] updating /chosen/nvidia,ethernet-mac node 00:04:4b:e4:13:9c
[0008.796] Plugin Manager: Parse ODM data 0x00084000
[0008.807] shim_cmdline_install: /chosen/bootargs: root=/dev/mmcblk0p1 rw rootwait console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0
[0008.827] Find /i2c@7000c000's alias i2c0
[0008.831] get eeprom at 1-a0, size 256, type 0
[0008.840] Find /i2c@7000c500's alias i2c2
[0008.843] get eeprom at 3-a0, size 256, type 0
[0008.848] get eeprom at 3-ae, size 256, type 0
[0008.852] pm_ids_update: Updating 1,a0, size 256, type 0
[0008.858] I2C slave not started
[0008.861] I2C write failed
[0008.863] Writing offset failed
[0008.866] eeprom_init: EEPROM read failed
[0008.870] pm_ids_update: eeprom init failed
[0008.874] pm_ids_update: Updating 3,a0, size 256, type 0
[0008.904] pm_ids_update: The pm board id is 3448-0000-200
[0008.911] Adding plugin-manager/ids/3448-0000-200=/i2c@7000c500:module@0x50
[0008.918] pm_ids_update: pm id update successful
[0008.922] pm_ids_update: Updating 3,ae, size 256, type 0
[0008.952] pm_ids_update: The pm board id is 3449-0000-200
[0008.959] Adding plugin-manager/ids/3449-0000-200=/i2c@7000c500:module@0x57
[0008.965] pm_ids_update: pm id update successful
[0008.996] Chip UID is 000000016441d5c808000000010180c0
[0009.001] Add serial number:04212190232970c08001 as DT property
[0009.009] Applying platform configs
[0009.015] platform-init is not present. Skipping
[0009.020] calling apps_init()
[0009.045] Found 13 GPT partitions in "sd0"
[0009.049] Proceeding to Cold Boot
[0009.052] starting app android_boot_app
[0009.056] Device state: unlocked
[0009.059] display console init
[0009.067] could not find regulator
[0009.070] hdmi cable connected
[0009.086] edid read success
[0009.101] edid read success
[0009.104] width = 640, height = 480, frequency = 25174825
[0009.109] width = 640, height = 480, frequency = 25174825
[0009.115] width = 640, height = 480, frequency = 25174825
[0009.120] width = 640, height = 480, frequency = 25174825
[0009.125] width = 1920, height = 1080, frequency = 148500000
[0009.131] width = 720, height = 480, frequency = 27000000
[0009.136] width = 1920, height = 1080, frequency = 148351648
[0009.142] width = 1920, height = 1080, frequency = 148351648
[0009.148] width = 1280, height = 720, frequency = 74175824
[0009.153] width = 1280, height = 720, frequency = 74175824
[0009.159] width = 720, height = 480, frequency = 26973026
[0009.164] width = 720, height = 576, frequency = 26973026
[0009.169] width = 720, height = 480, frequency = 26973026
[0009.175] width = 720, height = 576, frequency = 26973026
[0009.180] width = 640, height = 480, frequency = 25174825
[0009.185] Best mode Width = 1920, Height = 1080, freq = 148351648
[0009.193] tmds-config node not found
[0009.197] pmc_set_io_pad_voltage: Error -2 retrieving platform-io-pad-voltagepropsetting 'avdd-io-hdmi-dp' regulator to 1050000 micro volts
[0009.212] setting 'vdd-1v8' regulator to 1800000 micro volts
[0009.220] could not find regulator
[0009.223] could not find regulator
[0009.226] could not find regulator
[0009.255] using default cmu settings
[0009.258] dc_hdmi_enable, starting HDMI initialisation
[0009.264] dc_hdmi_enable, HDMI initialisation complete
[0009.269] list and configure display window
[0009.278] display console init completed
[0009.289] subnode volume_up is not found !
[0009.293] subnode back is not found !
[0009.297] subnode volume_down is not found !
[0009.301] subnode menu is not found !
[0009.304] Gpio keyboard init success
[0009.348] found decompressor handler: lz4-legacy
[0009.363] decompressing blob (type 1)...
[0009.398] load_bmp_blob: panelresolution=1080 type=3
[0009.449] decompressor handler not found
[0009.452] load_firmware_blob: Firmware blob loaded, entries=2
[0009.458] se_aes_verify_sbk_clear: Error
[0009.462] bl_battery_charging: connected to external power supply
[0009.469] xusb is supported
[0009.475] error while finding nvidia,portmap
[0009.480] could not find regulator
[0009.984] xusb blob version 0 size 126464
[0009.988] firmware size 126464
[0009.992] Firmware timestamp: 0x59fc70d3, Version: 50.20 release
[0010.007] xhci0: 64 bytes context size, 32-bit DMA
[0010.047] usbus0: 5.0Gbps Super Speed USB v3.0
[0010.067] uhub0: <Nvidia XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0
[0010.717] uhub0: 9 ports with 9 removable, self powered
[0011.717] failed to get HID devices
[0011.720] failed to init xhci or no usb device attached
[0011.730] device_query_partition_size: failed to open partition sd0:MSC !
[0011.737] MSC Partition not found
[0011.743] device_query_partition_size: failed to open partition sd0:USP !
[0011.750] USP partition read failed!
[0011.753] blob_init: blob-partition USP header read failed
[0011.759] android_boot Unable to update recovery partition
[0011.764] kfs_getpartname: name = LNX
[0011.768] Loading kernel from LNX
[0011.827] Verifying boot image in OdmNonSecureSBK mode
[0011.870] kernel load address: 0x80080000, size: 476960 bytes
[0011.876] ramdisk load address: 0x84100000, size: 0 bytes
[0011.881] load kernel from storage
[0011.893] decompressor handler not found
[0011.950] Successfully loaded kernel and ramdisk images
[0011.956] load_bmp_blob: panelresolution=1080 type=3
[0012.456] display bmp image done
[0012.459] NCK carveout not present
[0012.462] Skipping dts_overrides
[0012.465] NCK carveout not present
[0012.469] shim_invoke: No NCT, Calling dts updates
[0012.480] Find /i2c@7000c000's alias i2c0
[0012.484] get eeprom at 1-a0, size 256, type 0
[0012.492] Find /i2c@7000c500's alias i2c2
[0012.496] get eeprom at 3-a0, size 256, type 0
[0012.501] get eeprom at 3-ae, size 256, type 0
[0012.505] pm_ids_update: Updating 1,a0, size 256, type 0
[0012.510] I2C slave not started
[0012.513] I2C write failed
[0012.516] Writing offset failed
[0012.519] eeprom_init: EEPROM read failed
[0012.523] pm_ids_update: eeprom init failed
[0012.527] pm_ids_update: Updating 3,a0, size 256, type 0
[0012.557] pm_ids_update: The pm board id is 3448-0000-200
[0012.564] Adding plugin-manager/ids/3448-0000-200=/i2c@7000c500:module@0x50
[0012.572] pm_ids_update: pm id update successful
[0012.576] pm_ids_update: Updating 3,ae, size 256, type 0
[0012.606] pm_ids_update: The pm board id is 3449-0000-200
[0012.612] Adding plugin-manager/ids/3449-0000-200=/i2c@7000c500:module@0x57
[0012.620] pm_ids_update: pm id update successful
[0012.650] eeprom_get_mac: EEPROM invalid MAC address (all 0xff)
[0012.656] shim_eeprom_update_mac:267: Failed to update 0 MAC address in DTB
[0012.664] eeprom_get_mac: EEPROM invalid MAC address (all 0xff)
[0012.670] shim_eeprom_update_mac:267: Failed to update 1 MAC address in DTB
[0012.678] updating /chosen/nvidia,ethernet-mac node 00:04:4b:e4:13:9c
[0012.685] Plugin Manager: Parse ODM data 0x00084000
[0012.695] shim_cmdline_install: /chosen/bootargs: root=/dev/mmcblk0p1 rw rootwait console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0
[0012.709] Add serial number:04212190232970c08001 as DT property
[0012.718] "bpmp" doesn't exist, creating
[0012.723] Updated bpmp info to DTB
[0012.728] Updated initrd info to DTB
[0012.732] "proc-board" doesn't exist, creating
[0012.737] Updated board info to DTB
[0012.741] "pmu-board" doesn't exist, creating
[0012.746] Updated board info to DTB
[0012.750] "display-board" doesn't exist, creating
[0012.755] Updated board info to DTB
[0012.759] "reset" doesn't exist, creating
[0012.763] Updated reset info to DTB
[0012.767] Cmdline: tegraid=21.1.2.0.0 ddr_die=4096M@2048M section=512M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 console=ttyS0,115200n8 debug_uartport=lsport,0 earlyprintk=uart8250-32bit,0x70006000 maxcpus=4 usbcore.old_scheme_first=1 lp0_vec=0x1000@0xff780000 core_edp_mv=1075 core_edp_ma=4000 tegra_fbmem=0x800000@0x92cb6000 is_hdmi_initialised=1
[0012.806] DTB cmdline: root=/dev/mmcblk0p1 rw rootwait console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0
[0012.816] boot image cmdline: root=/dev/mmcblk0p1 rw rootwait console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0
[0012.828] Updated bootarg info to DTB
[0012.832] Adding uuid 000000016441d5c808000000010180c0 to DT
[0012.841] device_query_partition_size: failed to open partition sd0:RP6 !
[0012.848] RP6 partition read failed!
[0012.853] WARNING: Failed to pass NS DRAM ranges to TOS, err: -7
[0012.859] Updated memory info to DTB
[0012.864] Updated system-lp0-disable info to DTB
[0012.872] set vdd_core voltage to 1075 mv
[0012.876] setting 'vdd-core' regulator to 1075000 micro volts
[0012.897] could not find regulator
[0012.900] Found secure-pmc; disable BPMP