Xavier NX Devkit (SD) PMIC WDT

Hi,

We need to use the PMIC WDT so that cboot can be reset in case in encounters an error and hangs. This can happen sometimes when it can’t read the SD-CARD for some reason.

To overcome this we can enable the PMIC WDT from ODMDATA by setting it to 0xB81A0000. However, this watchdog doesn’t work with systemd, for instance setting RuntimeWatchdogSec to 10 seconds in /etc/systemd/system.conf.d/watchdog.conf, the watchdog resets the device as soon as the system is up. This behavior is not present with tegra wdt, which works as expected:

[    1.798037] tegra_wdt_t18x 30c0000.watchdog: Expiry count is deprecated
[    1.804947] tegra_wdt_t18x 30c0000.watchdog: Tegra WDT init timeout = 120 sec
[    1.811565] tegra_wdt_t18x 30c0000.watchdog: Registered successfully
[   22.917104] tegra_wdt_t18x 30c0000.watchdog: Watchdog(0): wdt timeout set to 10 sec

How can I have PMIC WDT work with systemd, like TEGRA WDT?

CONFIG_MAX77620_WATCHDOG=y is enabled in the kernel and only /dev/watchdog and watchdog0 are present when PMIC WDT is enabled.

Thank you

Are there other changes needed except from enabling PMIC WDT from ODMDATA for it to work with systemd like tegra wdt? If so, which are they?

Hi @ShaneCCC , are you able to assist with this question? Thank you

One solution to this is the one pointed out by the meta-tegra maintainer. It’s necessary to disable the Tegra WDT modules in the defconfig when PMIC WDT is enabled trough ODMDATA:

-CONFIG_TEGRA21X_WATCHDOG=y
-CONFIG_TEGRA18X_WATCHDOG=y
-CONFIG_SOFT_PLATFORM_WATCHDOG=y
+#CONFIG_TEGRA21X_WATCHDOG=y
+#CONFIG_TEGRA18X_WATCHDOG=y
+#CONFIG_SOFT_PLATFORM_WATCHDOG=y

Unfortunately enabling the PMIC WDT does not trigger cboot to reset on panic. Sometimes, after multiple reboots, it may happen that the NX SD does not recognise the SD-CARD:

] ��[0001.034] I>  2) Base:0xf2000000 Size:0x00200000
[0001.188] I>  3) Base:0xf1200000 Size:0x00200000
[0001.192] I>  4) Base:0xf1000000 Size:0x00100000
[0001.197] I>  5) Base:0xf0f00000 Size:0x00100000
[0001.201] I>  6) Base:0xf3800000 Size:0x00400000
[0001.206] I>  7) Base:0xf1c00000 Size:0x00400000
[0001.210] I>  8) Base:0xf0e00000 Size:0x00100000
[0001.215] I>  9) Base:0xf0d00000 Size:0x00100000
[0001.219] I> 10) Base:0xf3000000 Size:0x00800000
[0001.223] I> 11) Base:0x40000000 Size:0x00040000
[0001.228] I> 12) Base:0xf0c00000 Size:0x00100000
[0001.232] I> 13) Base:0x40046000 Size:0x00002000
[0001.237] I> 14) Base:0x40048000 Size:0x00002000
[0001.241] I> 15) Base:0xac000000 Size:0x00004000
[0001.246] I> 16) Base:0x4004a000 Size:0x00002000
[0001.250] I> 17) Base:0xf0b00000 Size:0x00100000
[0001.255] I> 18) Base:0x4004c000 Size:0x00002000
[0001.259] I> 19) Base:0xf2200000 Size:0x00600000
[0001.264] I> 20) Base:0x4004e000 Size:0x00002000
[0001.268] I> 21) Base:0xf0ad0000 Size:0x0000c000
[0001.273] I> 22) Base:0x00000000 Size:0x00000000
[0001.277] I> 23) Base:0xf0ae0000 Size:0x00020000
[0001.281] I> 24) Base:0xf6000000 Size:0x02000000
[0001.286] I> 25) Base:0x40050000 Size:0x00002000
[0001.290] I> 26) Base:0x40040000 Size:0x00006000
[0001.295] I> 27) Base:0xf1800000 Size:0x00400000
[0001.299] I> 28) Base:0xf4c00000 Size:0x01400000
[0001.304] I> 29) Base:0xf1400000 Size:0x00400000
[0001.308] I> 30) Base:0x00000000 Size:0x00000000
[0001.313] I> 31) Base:0x00000000 Size:0x00000000
[0001.317] I> 32) Base:0xf8000000 Size:0x08000000
[0001.322] I> 33) Base:0x00000000 Size:0x00000000
[0001.326] I> 34) Base:0xf3c00000 Size:0x01000000
[0001.331] I> 35) Base:0xab000000 Size:0x01000000
[0001.335] I> 36) Base:0xa0000000 Size:0x0b000000
[0001.339] I> 37) Base:0xf2800000 Size:0x00800000
[0001.344] I> 38) Base:0x80000000 Size:0x20000000
[0001.348] I> 39) Base:0xb0000000 Size:0x08000000
[0001.353] I> 40) Base:0x00000000 Size:0x00000000
[0001.357] I> 41) Base:0x00000000 Size:0x00000000
[0001.362] I> 42) Base:0x00000000 Size:0x00000000
[0001.366] I> 43) Base:0x00000000 Size:0x00000000
[0001.371] I> 44) Base:0x00000000 Size:0x00000000
[0001.375] I> 45) Base:0x00000000 Size:0x00000000
[0001.380] GIC-SPI Target CPU: 0
[0001.383] Interrupts Init done
[0001.385] calling constructors
[0001.388] initializing heap
[0001.391] I> Heap: [0xa069cb70 ... 0xab000000]
[0001.395] initializing threads
[0001.398] initializing timers
[0001.401] creating bootstrap completion thread
[0001.405] top of bootstrap2()
[0001.408] CPU: MIDR: 0x4E0F0040, MPIDR: 0x80000000
[0001.413] initializing platform
[0001.416] E> DEVICE_PROD: Invalid value data = 0, size = 0.
[0001.421] W> device prod register failed
[0001.425] I> Bl_dtb @0xaaf00000
[0001.432] W> "plugin-manager" doesn't exist, creating
[0001.433] W> "ids" doesn't exist, creating
[0001.437] W> "connection" doesn't exist, creating
[0001.441] W> "configs" doesn't exist, creating
[0001.453] E> failed to read label property for node 158736: 13
[0001.455] E> failed to read reg property for node 158800: 13
[0001.459] E> failed to read reg property for node 158852: 13
[0001.464] E> failed to read reg property for node 158936: 13
[0001.470] I> Find /i2c@3160000's alias i2c0
[0001.472] I> Reading eeprom i2c=0 address=0x50
[0001.501] I> Device at /i2c@3160000:0x50
[0001.502] I> Reading eeprom i2c=0 address=0x57
[0001.526] I> Device at /i2c@3160000:0x57
[0001.528] I> Find /i2c@c240000's alias i2c1
[0001.528] I> Reading eeprom i2c=1 address=0x50
[0001.530] E> I2C: slave not found in slaves.
[0001.530] E> I2C: Could not write 0 bytes to slave: 0x00a0 with repeat start true.
[0001.531] E> I2C_DEV: Failed to send register address 0x00000000.
[0001.531] E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xa0 at 0x00000000 via instance 1.
[0001.540] E> eeprom: Retry to read I2C slave device.
[0001.545] E> I2C: slave not found in slaves.
[0001.549] E> I2C: Could not write 0 bytes to slave: 0x00a0 with repeat start true.
[0001.557] E> I2C_DEV: Failed to send register address 0x00000000.
[0001.562] E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xa0 at 0x00000000 via instance 1.
[0001.572] E> eeprom: Failed to read I2C slave device
[0001.577] I> Eeprom read failed 0x3526070d
[0001.581] I> create_pm_ids: id: 3668-0000-200-J, len: 15
[0001.586] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00,, len: 93
[0001.597] I> create_pm_ids: id: 3509-0000-100-G, len: 15
[0001.602] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00,, len: 93
[0001.613] I> Adding plugin-manager/ids/3668-0000-200=/i2c@3160000:module@0x50
[0001.621] W> "i2c@3160000" doesn't exist, creating
[0001.625] W> "module@0x50" doesn't exist, creating
[0001.630] I> Adding plugin-manager/ids/3509-0000-100=/i2c@3160000:module@0x57
[0001.637] W> "module@0x57" doesn't exist, creating
[0001.642] I> Adding plugin-manager/cvm
[0001.645] W> "chip-id" doesn't exist, creating
[0001.649] I> Adding plugin-manager/chip-id/A02P
[0001.653] I> Plugin-manager override starting
[0001.658] I> node /plugin-manager/fragment-pcie-c5-rp matches
[0001.666] I> node /plugin-manager/fragement-pmic-wdt-en matches
[0001.670] I> node /plugin-manager/fragement-tegra-wdt-dis matches
[0001.676] I> node /plugin-manager/fragement-tegra-sdhci-emmc-dis matches
[0001.684] I> Disable plugin-manager status in FDT
[0001.686] I> Plugin-manager override finished successfully
[0001.691] I> gpio framework initialized
[0001.696] I> tegrabl_gpio_driver_register: register 'nvidia,tegra194-gpio' driver
[0001.703] I> tegrabl_gpio_driver_register: register 'nvidia,tegra194-gpio-aon' driver
[0001.710] I> tegrabl_tca9539_init: i2c bus: 1, slave addr: 0x46
[0001.717] W> fetch_driver_phandle_from_dt: failed to get node with compatible ti,tca9539
[0001.725] W> fetch_driver_phandle_from_dt: failed to get node with compatible nxp,tca9539
[0001.732] W> tegrabl_tca9539_init: failed to fetch phandle from dt
[0001.738] I> tegrabl_tca9539_init: i2c bus: 1, slave addr: 0x44
[0001.745] W> fetch_driver_phandle_from_dt: failed to get node with compatible ti,tca9539
[0001.753] W> fetch_driver_phandle_from_dt: failed to get node with compatible nxp,tca9539
[0001.760] W> tegrabl_tca9539_init: failed to fetch phandle from dt
[0001.767] I> fixed regulator driver initialized
[0001.774] I> register 'maxim' power off handle
[0001.775] I> virtual i2c enabled
[0001.777] I> registered 'maxim,max20024' pmic
[0001.782] I> tegrabl_gpio_driver_register: register 'max20024-gpio' driver
[0001.788] I> Boot-device: QSPI
[0001.791] I> Boot_device: QSPI_FLASH instance: 0
[0001.796] I> QSPI source rate = 204000 Khz
[0001.800] I> Requested rate for QSPI clock = 34000 Khz
[0001.805] I> BPMP-set rate for QSPI clk = 34000 Khz
[0001.810] I> QSPI Flash Size = 32 MB
[0001.817] I> Qspi initialized successfully
[0001.818] I> qspi flash-0 params source = boot args
[0001.821] I> create_pm_ids: id: 3668-0000-200-J, len: 15
[0001.827] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00,, len: 93
[0001.838] I> create_pm_ids: id: 3509-0000-100-G, len: 15
[0001.843] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00,, len: 93
[0001.854] I> No sdcard
[0001.856] I> -0 params source = 
[0001.861] I> Found 47 partitions in QSPI_FLASH (instance 0)
[0001.872] I> regulator 'vdd-hdmi-5v0' already enabled
[0001.876] I> regulator 'vdd-hdmi-5v0' already enabled
[0001.876] E> tegrabl_display_init_regulator: hdmi cable is not connected
[0001.881] E> tegrabl_display_get_pdata, failed to parse dtb settings
[0001.890] E> invalid display type
[0001.891] E> cannot find any other nvdisp nodes
[0001.895] E> no valid display unit config found in dtb
[0001.901] W> display init failed
[0001.903] I> Load in CBoot Boot Options partition and parse it
[0001.908] I> Active slot suffix: _b
[0001.912] E> Error -9 when finding node with path /boot-configuration
[0001.918] E> tegrabl_cbo_parse_info: "boot-configuration" not found in CBO file.
[0001.925] I> Using default boot order
[0001.929] I> boot-dev-order :-
[0001.932] I> 1.sd
[0001.933] I> 2.usb
[0001.935] I> 3.nvme
[0001.937] I> 4.emmc
[0001.939] I> 5.net
[0001.941] I> Hit any key to stop autoboot:     4       3       2       1
[0003.949] initializing target
[0003.949] calling apps_init()
[0003.950] starting app kernel_boot_app
[0003.961] I> found decompressor handler: lz4-legacy
[0003.961] I> decompressing BMP_b blob ...
[0003.972] I> Kernel type = Normal
[0003.972] I> ########## SD (0) boot ##########
[0003.973] I> No sdcard
[0003.973] I> -0 params source = 
[0003.973] E> Blockdev open: exit error
[0003.974] E> SD boot failed, err: 724238353
[0003.974] I> ########## USB (0) boot ##########
[0003.991] I> Validate XUSB-FW ...
[0003.991] I> T19x: Authenticate XUSB-FW (bin_type: 11), max size 0x30000
[0003.992] E> Stage2Signature validation failed with SHA2!!
[0003.992] C> OEM authentication of XUSB-FW header failed!
[0003.992] E> Failed to validate XUSB-FW binary (err=1077936152)
[0003.998] E> failed to initialize xhci controller
[0004.002] E> Error in init of XUSB host driver, err: 40400018
[0004.008] W> Failed to initialize device 5-0
[0004.012] E> USB boot failed, err: 1077936152
[0004.016] I> ########## NVME (0) boot ##########
[0004.021] I> Initializing nvme device instance 0
[0004.025] I> Initializing nvme controller
[0004.029] I> tegrabl_locate_pcie_ctrl_in_dt: found match at 0x14180000
[0004.036] I> vpcie3v3-supply not found
[0004.039] I> vpcie12v-supply not found
[0004.043] W> Failed to get nvidia,plat-gpios
[0004.047] I> tegrabl_pcie_soc_preinit: (0):
[0004.051] I> Unpowergate
[0004.053] I> tegrabl_car_clk_disable(0) ...
[0004.057] I> tegrabl_car_rst_set(CORE, 0) ...
[0004.061] I> tegrabl_car_rst_set(APB, 0) ...
[0004.066] I> tegrabl_car_clk_enable(0) ...
[0004.070] I> tegrabl_car_rst_clear(APB, 0) ...
[0004.074] I> tegrabl_set_ctrl_state(0)
[0004.077] I> CLR PCIE_APB:6
[0004.080] I> tegrabl_pcie_soc_init: (0):
[0004.084] I> APPL initialization ...
[0004.087] I> poweron phys
[0004.090] I> tegrabl_locate_pcie_ctrl_in_dt: found match at 0x14180000
[0004.096] I> tegrabl_power_on_phy: controller 0 not available
[0004.102] E> Failed to power on phy on controller-0
[0004.107] W> Failed tegrabl_pcie_soc_init(), error=0x1
[0004.111] I> Failed to initialize SoC Host PCIe controller
[0004.117] E> tegrabl_nvme_init: Failed tegrabl_pcie_init(0); error=0x1
[0004.123] W> tegrabl_nvme_bdev_open: Failed NVME INIT; error=0x80800601
[0004.129] W> Failed to open NVME-0, err = 80800601
[0004.134] W> Failed to initialize device 10-0
[0004.138] E> NVME (0) boot failed, err: 0x80800601
[0004.143] I> ########## NVME (1) boot ##########
[0004.147] I> Initializing nvme device instance 1
[0004.152] I> Initializing nvme controller
[0004.156] I> tegrabl_locate_pcie_ctrl_in_dt: found match at 0x14100000
[0004.162] I> vpcie3v3-supply not found
[0004.166] I> vpcie12v-supply not found
[0004.169] W> Failed to get nvidia,plat-gpios
[0004.173] I> tegrabl_pcie_soc_preinit: (1):
[0004.177] I> Unpowergate
[0004.180] I> tegrabl_car_clk_disable(1) ...
[0004.184] I> tegrabl_car_rst_set(CORE, 1) ...
[0004.188] I> tegrabl_car_rst_set(APB, 1) ...
[0004.192] I> tegrabl_car_clk_enable(1) ...
[0004.196] I> tegrabl_car_rst_clear(APB, 1) ...
[0004.200] I> tegrabl_set_ctrl_state(1)
[0004.204] I> CLR PCIE_APB:6
[0004.207] I> tegrabl_pcie_soc_init: (1):
[0004.210] I> APPL initialization ...
[0004.214] I> poweron phys
[0004.216] I> tegrabl_locate_pcie_ctrl_in_dt: found match at 0x14100000
[0004.223] I> tegrabl_power_on_phy: controller 1 not available
[0004.228] E> Failed to power on phy on controller-1
[0004.233] W> Failed tegrabl_pcie_soc_init(), error=0x1
[0004.238] I> Failed to initialize SoC Host PCIe controller
[0004.243] E> tegrabl_nvme_init: Failed tegrabl_pcie_init(1); error=0x1
[0004.250] W> tegrabl_nvme_bdev_open: Failed NVME INIT; error=0x80800601
[0004.256] W> Failed to open NVME-1, err = 80800601
[0004.261] W> Failed to initialize device 10-1
[0004.265] E> NVME (1) boot failed, err: 0x80800601
[0004.270] I> ########## NVME (2) boot ##########
[0004.274] I> Initializing nvme device instance 2
[0004.279] I> Initializing nvme controller
[0004.283] I> tegrabl_locate_pcie_ctrl_in_dt: found match at 0x14120000
[0004.289] I> vpcie3v3-supply not found
[0004.292] I> vpcie12v-supply not found
[0004.296] W> Failed to get nvidia,plat-gpios
[0004.300] I> tegrabl_pcie_soc_preinit: (2):
[0004.304] I> Unpowergate
[0004.307] I> tegrabl_car_clk_disable(2) ...
[0004.311] I> tegrabl_car_rst_set(CORE, 2) ...
[0004.315] I> tegrabl_car_rst_set(APB, 2) ...
[0004.319] I> tegrabl_car_clk_enable(2) ...
[0004.323] I> tegrabl_car_rst_clear(APB, 2) ...
[0004.327] I> tegrabl_set_ctrl_state(2)
[0004.331] I> CLR PCIE_APB:6
[0004.333] I> tegrabl_pcie_soc_init: (2):
[0004.337] I> APPL initialization ...
[0004.340] I> poweron phys
[0004.343] I> tegrabl_locate_pcie_ctrl_in_dt: found match at 0x14120000
[0004.349] I> tegrabl_power_on_phy: controller 2 not available
[0004.355] E> Failed to power on phy on controller-2
[0004.360] W> Failed tegrabl_pcie_soc_init(), error=0x1
[0004.365] I> Failed to initialize SoC Host PCIe controller
[0004.370] E> tegrabl_nvme_init: Failed tegrabl_pcie_init(2); error=0x1
[0004.376] W> tegrabl_nvme_bdev_open: Failed NVME INIT; error=0x80800601
[0004.383] W> Failed to open NVME-2, err = 80800601
[0004.387] W> Failed to initialize device 10-2
[0004.392] E> NVME (2) boot failed, err: 0x80800601
[0004.396] I> ########## NVME (3) boot ##########
[0004.401] I> Initializing nvme device instance 3
[0004.405] I> Initializing nvme controller
[0004.409] I> tegrabl_locate_pcie_ctrl_in_dt: found match at 0x14140000
[0004.415] I> vpcie3v3-supply not found
[0004.419] I> vpcie12v-supply not found
[0004.423] W> Failed to get nvidia,plat-gpios
[0004.427] I> tegrabl_pcie_soc_preinit: (3):
[0004.431] I> Unpowergate
[0004.433] I> tegrabl_car_clk_disable(3) ...
[0004.437] I> tegrabl_car_rst_set(CORE, 3) ...
[0004.441] I> tegrabl_car_rst_set(APB, 3) ...
[0004.445] I> tegrabl_car_clk_enable(3) ...
[0004.449] I> tegrabl_car_rst_clear(APB, 3) ...
[0004.454] I> tegrabl_set_ctrl_state(3)
[0004.457] I> CLR PCIE_APB:6
[0004.460] I> tegrabl_pcie_soc_init: (3):
[0004.464] I> APPL initialization ...
[0004.467] I> poweron phys
[0004.470] I> tegrabl_locate_pcie_ctrl_in_dt: found match at 0x14140000
[0004.476] I> tegrabl_power_on_phy: controller 3 not available
[0004.481] E> Failed to power on phy on controller-3
[0004.486] W> Failed tegrabl_pcie_soc_init(), error=0x1
[0004.491] I> Failed to initialize SoC Host PCIe controller
[0004.496] E> tegrabl_nvme_init: Failed tegrabl_pcie_init(3); error=0x1
[0004.503] W> tegrabl_nvme_bdev_open: Failed NVME INIT; error=0x80800601
[0004.509] W> Failed to open NVME-3, err = 80800601
[0004.514] W> Failed to initialize device 10-3
[0004.518] E> NVME (3) boot failed, err: 0x80800601
[0004.523] I> ########## NVME (4) boot ##########
[0004.527] I> Initializing nvme device instance 4
[0004.532] I> Initializing nvme controller
[0004.536] I> tegrabl_locate_pcie_ctrl_in_dt: found match at 0x14160000
[0004.542] I> vpcie3v3-supply not found
[0004.546] I> vpcie12v-supply not found
[0004.549] W> Failed to get nvidia,plat-gpios
[0004.553] I> tegrabl_pcie_soc_preinit: (4):
[0004.557] I> Unpowergate
[0004.560] I> tegrabl_car_clk_disable(4) ...
[0004.564] I> tegrabl_car_rst_set(CORE, 4) ...
[0004.568] I> tegrabl_car_rst_set(APB, 4) ...
[0004.572] I> tegrabl_car_clk_enable(4) ...
[0004.576] I> tegrabl_car_rst_clear(APB, 4) ...
[0004.580] I> tegrabl_set_ctrl_state(4)
[0004.584] I> CLR PCIE_APB:6
[0004.587] I> tegrabl_pcie_soc_init: (4):
[0004.590] I> APPL initialization ...
[0004.594] I> poweron phys
[0004.597] I> tegrabl_locate_pcie_ctrl_in_dt: found match at 0x14160000
[0004.603] I> tegrabl_power_on_phy: power on phy @0x3f40000
[0004.710] I> PCIe controller-4 link is up
[0004.710] I> tegra_pcie_info[4].cfg0_base = 0x36000000
[0004.710] I> tegra_pcie_info[4].cfg1_base = 0x36020000
[0004.711] I> tegra_pcie_info[4].atu_dma_base = 0x36040000
[0004.711] I> tegra_pcie_bus[4].mem = 0x36200000
[0004.712] I> Scanning busnr: 0 devfn: 0
[0004.712] I> PCIe IDs: 0x1ad110de
[0004.715] I> PCIe RID_CC: 0x60400a1
[0004.718] I> Scanning busnr: 1 devfn: 0
[0004.722] I> PCIe IDs: 0xc82210ec
[0004.725] I> PCIe RID_CC: 0x2800000
[0004.728] I> PCI Config: I/O=0x36100000, Memory=0x36200000
[0004.734] I> IO bar_num=0 bar=0x36100000
[0004.738] I> MEM64 bar_num=2 bar=0x36200000
[0004.742] I> Number of PCIe devices detected: 2
[0004.746] E> tegrabl_nvme_init: Failed tegrabl_pcie_get_dev(4); error=0x0
[0004.753] W> tegrabl_nvme_bdev_open: Failed NVME INIT; error=0x80800612
[0004.759] W> Failed to open NVME-4, err = 80800612
[0004.764] W> Failed to initialize device 10-4
[0004.768] E> NVME (4) boot failed, err: 0x80800612
[0004.773] I> ########## NVME (5) boot ##########
[0004.777] I> Initializing nvme device instance 5
[0004.781] I> Initializing nvme controller
[0004.786] I> tegrabl_locate_pcie_ctrl_in_dt: found match at 0x141a0000
[0004.792] I> vpcie3v3-supply not found
[0004.795] I> vpcie12v-supply not found
[0004.799] W> Failed to get nvidia,plat-gpios
[0004.803] I> tegrabl_pcie_soc_preinit: (5):
[0004.807] I> Unpowergate
[0004.810] I> tegrabl_car_clk_disable(5) ...
[0004.813] I> tegrabl_car_rst_set(CORE, 5) ...
[0004.818] I> tegrabl_car_rst_set(APB, 5) ...
[0004.822] I> tegrabl_car_clk_enable(5) ...
[0004.826] I> tegrabl_car_rst_clear(APB, 5) ...
[0004.830] I> tegrabl_set_ctrl_state(5)
[0004.834] I> CLR PCIE_APB:6
[0004.836] I> tegrabl_pcie_soc_init: (5):
[0004.840] I> APPL initialization ...
[0004.843] I> poweron phys
[0004.846] I> tegrabl_locate_pcie_ctrl_in_dt: found match at 0x141a0000
[0004.852] I> tegrabl_power_on_phy: power on phy @0x3eb0000
[0004.858] I> tegrabl_power_on_phy: power on phy @0x3ec0000
[0004.863] I> tegrabl_power_on_phy: power on phy @0x3ed0000
[0004.868] I> tegrabl_power_on_phy: power on phy @0x3ee0000
[0004.874] I> tegrabl_power_on_phy: power on phy @0x3ef0000
[0004.879] I> tegrabl_power_on_phy: power on phy @0x3f00000
[0004.884] I> tegrabl_power_on_phy: power on phy @0x3f10000
[0004.890] I> tegrabl_power_on_phy: power on phy @0x3f20000
[0005.995] C> Failed to link up controller-5
[0005.996] W> Failed tegrabl_pcie_soc_init(), error=0x12
[0005.996] I> Failed to initialize SoC Host PCIe controller
[0005.996] E> tegrabl_nvme_init: Failed tegrabl_pcie_init(5); error=0x12
[0005.997] W> tegrabl_nvme_bdev_open: Failed NVME INIT; error=0x80800612
[0005.997] W> Failed to open NVME-5, err = 80800612
[0006.002] W> Failed to initialize device 10-5
[0006.006] E> NVME (5) boot failed, err: 0x80800612
[0006.011] I> ########## Fixed storage boot ##########
[0006.016] I> Loading kernel-bootctrl from partition
[0006.020] E> Cannot find partition kernel-bootctrl
[0006.025] E> Cannot open partition kernel-bootctrl
[0006.030] W> tegrabl_get_kernel_bootctrl: failed to read primary bootctrl data
[0006.037] I> Loading kernel-bootctrl_b from partition
[0006.042] E> Cannot find partition kernel-bootctrl_b
[0006.047] E> Cannot open partition kernel-bootctrl_b
[0006.051] W> tegrabl_get_kernel_bootctrl: failed to read recovery bootctrl data
[0006.059] W> tegrabl_get_kernel_bootctrl: use default dummy boot control data
[0006.066] E> Blockdev open: exit error
[0006.069] E> tegrabl_display_clear: display is not initialized
[0006.075] W> Boot logo display failed...
[0006.079] I> Kernel EP: 0x0, DTB: 0x0
[0006.082] 
[0006.083] -----------------------------------------------
[0006.088] Synchronous Exception: UNKNOWN EXCEPTION
[0006.093] -----------------------------------------------
[0006.098] 
[0006.099] ESR 0x2000000: ec 0x0, il 0x1, iss 0x0
[0006.104] -----------------------------------------------
[0006.109]  [Stack Trace]
[0006.112] 
[0006.113] => pc:0x00000000, sp:0xA06A6F30
[0006.117] => pc:0xA060F880, sp:0xA06A7160
[0006.120] => pc:0xA060F89C, sp:0xA06A71B0
[0006.124] => pc:0xA060F644, sp:0xA06A71E0
[0006.128] => pc:0xA060EB68, sp:0xA06A71F0
[0006.132] => pc:0xA060EB30, sp:0xA06A7200
[0006.136] -----------------------------------------------
[0006.141] iframe 0xa06a6e40:
[0006.144] x0  0x               0 x1  0x               0 x2  0x               0 x3  0x               0
[0006.153] x4  0x               0 x5  0x              20 x6  0x         b200123 x7  0x        ffffffc0
[0006.162] x8  0x               1 x9  0xffffffffffffffff x10 0x               6 x11 0x               2
[0006.171] x12 0x               1 x13 0x              40 x14 0x               1 x15 0x             2c0
[0006.180] x16 0x        a061c4a8 x17 0x               0 x18 0x               0 x19 0x               0
[0006.189] x20 0x               0 x21 0x               0 x22 0x               0 x23 0x               0
[0006.198] x24 0x               0 x25 0x               0 x26 0x               0 x27 0x               0
[0006.207] x28 0x               0 x29 0x        a06a7160 lr  0x        a060f7f4 sp  0x        a06a6f30
[0006.217] elr 0x               0
[0006.220] spsr 0x        400003c9
[0006.223] -----------------------------------------------
[0006.228] panic (caller 0xa0601238): die
[0006.232] HALT: spinning forever...

I have enabled the watchdog trough ODMDATA 0xB81A0000 but still, cboot does not reset to retry.

@WayneWWW in L4T 32.6.1 I see the patch you mentioned here: Failed Bootloader Watchdog Recovery is already present, any suggestion on why the 32.6.1 cboot doesn’t reset in this case? Thank you

Hi,

Are you sure the whole device has been flashed with rel32.6.1 with sdkmanager?

Yes, with 32.6.1. I worked around it by resetting instead of halting. After the reset in case of this sporadic fail the device is able to read the SD-CARD and boot properly:

+++ b/bootloader/partner/t18x/cboot/platform/tegra_shared/debug.c
@@ -15,6 +15,7 @@
 #include <platform_c.h>
 #include <printf.h>
 #include <tegrabl_timer.h>
+#include <tegrabl_exit.h>
 #include <tegrabl_debug.h>
 
 #if defined(CONFIG_DEBUG_TIMESTAMP)
@@ -91,7 +92,9 @@ int platform_dgetc(char *c, bool wait)
 
 void platform_halt(void)
 {
-	dprintf(ALWAYS, "HALT: spinning forever...\n");
+	dprintf(ALWAYS, "Will reset in 10 seconds...\n");
+	tegrabl_mdelay(10 * 1000);
+	tegrabl_reset();

Is there any method to trigger such error on devkit?

Sure, the error I was encountering was when booting the NX Devkit from the SD-CARD. After triggering multiple reboots from the command-line, eventually cboot failed to read the SD-CARD for some reason, and since no other boot medium was connected (no USB, NVME), it went into this state where it hanged. The PMIC WDT is disabled by default in cboot so the device stayed like that.

The SD-CARDs used are SanDisk Extreme Pro.