DSI display on TX2 NX

Hello, I’m having problems adding DSI display to TX2 NX. I can’t seem to get dmesg to initialize DSI and my panel.

So the things I have done are:

  • Created panel DTSI and C file
  • Added my panel to Makefile (it compiles correctly)
  • Added panel name to “board-panel.h”, “board-panel.c” and “of_dc.c”
  • Changed 8.0 WUXGA panel to my panel in tegra186-p3636-0001-a00-disp.dtsi file

Doing this, host1x is connecting to sor1 node. It’s presumably because this is on main tegra186-p3636-0001-p3509-0000-a01.dts file:

host1x {
		nvdisplay@15200000 {
			status = "okay";
			nvidia,dc-or-node = "/host1x/sor1";
			nvidia,dc-connector = <&sor1>;
			nvidia,fb-win = <0>;
			win-mask = <0x7>;
		};
		nvdisplay@15210000 {
			status = "okay";
			bootloader-status = "disabled";
			nvidia,dc-or-node = "/host1x/sor";
			nvidia,dc-connector = <&sor0>;
			nvidia,fb-win = <3>;
			win-mask = <0x38>;
		};
		sor {
			status = "okay";
			nvidia,active-panel = <&sor0_dp_display>;
			dp-display {
				status = "okay";
			};
		};
		sor1 {
			status = "okay";
			nvidia,active-panel = <&sor1_hdmi_display>;
			hdmi-display {
				status = "okay";
			};
		};
		dpaux@155c0000 {
			status = "okay";
		};
		dpaux@15040000 {
			status = "okay";
		};
	};

So I suppose the thing I need to do is remove/disable this part (because I don’t need HDMI or DP) and add my DSI node? The problem is, whenever I disable or edit nvdisplay node, the TX2 NX doesn’t boot at all and I can’t even get to see DMESG via USB.

EDIT: I managed to fix this by editing only nvdisplay@15200000 part and changing node to /host1x/dsi and connector to <&dsi>

But now I have this problem:

[    0.705864] tegradc 15200000.nvdisplay: disp0 connected to head0->/host1x/dsi
[    0.705905] tegradc 15200000.nvdisplay: tegra_dc_parse_panel_ops: panel: /host1x/dsi/panel-s-microtech is not active

There should be also a panel node with status ok in your device tree. And that board should have a .c file in the kernel source too.

I have created C file for the panel with all the necessary things. I also added this part in DTS:

host1x {
		nvdisplay@15200000 {
			status = "okay";
			// nvidia,dc-or-node = "/host1x/sor1";
			// nvidia,dc-connector = <&sor1>;
			// nvidia,fb-win = <0>;
			// win-mask = <0x7>;
			nvidia,fb-win = <0>;
			win-mask = <0x3>;
			nvidia,dc-or-node = "/host1x/dsi";
			nvidia,dc-connector = <&dsi>;
		};
		nvdisplay@15210000 {
			status = "okay";
			bootloader-status = "disabled";
			nvidia,dc-or-node = "/host1x/sor";
			nvidia,dc-connector = <&sor0>;
			nvidia,fb-win = <3>;
			win-mask = <0x38>;
		};
		dsi {
			nvidia,dsi-controller-vs = <DSI_VS_1>;
			status = "okay";
			nvidia,active-panel = <&panel_s_microtech>;
			nvidia,dsi-csi-loopback;
			panel-s-microtech {
				status = "okay";
				/* Only 2 lanes used on LANAI */
				nvidia,dsi-n-data-lanes = <2>;
				disp-default-out {
					nvidia,out-parent-clk = "pll_d";
					nvidia,out-flags = <TEGRA_DC_OUT_CONTINUOUS_MODE>;
				};
			};
		};

I noticed that the problem is, whenver I put okay on panel node, it doesn’t boot anymore. What could be the problem?

I have no idea. You should check the log from uart.

Here’s the log - it gets stuck on the last log line:

[0000.212] I> Welcome to MB2(TBoot-BPMP)(version: 01.00.160913-t186-M-00.00-mobile-c368a720)                                            
[0000.221] I> Boot-device: eMMC                                                                                                         
[0000.228] I> sdmmc bdev is already initialized                                                                                         
[0000.233] I> pmic: reset reason (nverc)        : 0x43                                                                                  
[0000.266] I> Found 19 partitions in SDMMC_BOOT (instance 3)                                                                            
[0000.286] I> Found 33 partitions in SDMMC_USER (instance 3)                                                                            
[0000.292] W> No valid slot number is found in scratch register                                                                         
[0000.297] W> Return default slot: _a                                                                                                   
[0000.301] I> A/B: bin_type (16) slot 0                                                                                                 
[0000.304] I> Loading partition bpmp-fw at 0xd7800000                                                                                   
[0000.309] I> Reading two headers - addr:0xd7800000 blocks:1                                                                            
[0000.315] I> Addr: 0xd7800000, start-block: 29417480, num_blocks: 1
[0000.339] I> Binary(16) of size 534416 is loaded @ 0xd7800000
[0000.345] W> No valid slot number is found in scratch register
[0000.351] W> Return default slot: _a
[0000.354] I> A/B: bin_type (17) slot 0
[0000.358] I> Loading partition bpmp-fw-dtb at 0xd79f0000
[0000.363] I> Reading two headers - addr:0xd79f0000 blocks:1
[0000.368] I> Addr: 0xd79f0000, start-block: 29419896, num_blocks: 1
[0000.387] I> Binary(17) of size 113248 is loaded @ 0xd79e4400
[0000.416] I> Loading SCE-FW ...
[0000.419] W> No valid slot number is found in scratch register
[0000.424] W> Return default slot: _a
[0000.428] I> A/B: bin_type (12) slot 0
[0000.431] I> Loading partition sce-fw at 0xd7300000
[0000.436] I> Reading two headers - addr:0xd7300000 blocks:1
[0000.442] I> Addr: 0xd7300000, start-block: 29423992, num_blocks: 1
[0000.461] I> Binary(12) of size 125632 is loaded @ 0xd7300000
[0000.466] I> Init SCE
[0000.469] I> Loading APE-FW ...
[0000.472] W> No valid slot number is found in scratch register
[0000.477] W> Return default slot: _a
[0000.481] I> A/B: bin_type (11) slot 0
[0000.484] I> Loading partition adsp-fw at 0xd7400000
[0000.489] I> Reading two headers - addr:0xd7400000 blocks:1
[0000.495] I> Addr: 0xd7400000, start-block: 29401096, num_blocks: 1
[0000.514] I> Binary(11) of size 77216 is loaded @ 0xd7400000
[0000.519] I> Copy BTCM section
[0000.522] W> No valid slot number is found in scratch register
[0000.528] W> Return default slot: _a
[0000.531] I> A/B: bin_type (13) slot 0
[0000.535] I> Loading partition cpu-bootloader at 0x96000000
[0000.541] I> Reading two headers - addr:0x96000000 blocks:1
[0000.546] I> Addr: 0x96000000, start-block: 29380616, num_blocks: 1
[0000.567] I> Binary(13) of size 308800 is loaded @ 0x96000000
[0000.573] W> No valid slot number is found in scratch register
[0000.578] W> Return default slot: _a
[0000.582] I> A/B: bin_type (20) slot 0
[0000.585] I> Loading partition bootloader-dtb at 0x85205400
[0000.591] I> Reading two headers - addr:0x85205400 blocks:1
[0000.596] I> Addr: 0x85205400, start-block: 29382664, num_blocks: 1
[0000.616] I> Binary(20) of size 192320 is loaded @ 0x85205400
[0000.622] W> No valid slot number is found in scratch register
[0000.627] W> Return default slot: _a
[0000.631] I> A/B: bin_type (14) slot 0
[0000.634] I> Loading partition secure-os at 0x85305600
[0000.639] I> Reading two headers - addr:0x85305600 blocks:1
[0000.645] I> Addr: 0x85305600, start-block: 29384712, num_blocks: 1
[0000.667] I> Binary(14) of size 402864 is loaded @ 0x85305600
[0000.675] I> TOS boot-params @ 0x85000000
[0000.678] I> TOS params prepared
[0000.682] I> Loading EKS ...
[0000.684] I> A/B: bin_type (15) slot 0
[0000.688] I> Loading partition eks at 0x85905800
[0000.692] I> Reading two headers - addr:0x85905800 blocks:1
[0000.698] I> Addr: 0x85905800, start-block: 29397000, num_blocks: 1
[0000.717] I> Binary(15) of size 1040 is loaded @ 0x85905800
[0000.722] I> EKB detected (length: 0x400) @ 0x85905800
[0000.727] I> Copied encrypted keys
[0000.731] I> boot profiler @ 0x175844000
[0000.735] I> boot profiler for TOS @ 0x175844000
[0000.739] I> Unhalting SCE
[0000.742] I> Primary Memory Start:80000000 Size:70000000
[0000.747] I> Extended Memory Start:f0110000 Size:856f0000
[0000.754] I> MB2(TBoot-BPMP) done

NOTICE:  BL31: v1.3(release):b5eeb33f7
NOTICE:  BL31: Built : 12:15:17, Jul 26 2021
ipc-unittest-main: 1519: Welcome to IPC unittest!!!
ipc-unittest-main: 1531: waiting forever
ipc-unittest-srv: 329: Init unittest services!!!
hwkey-agent: 41: hwkey-agent is running!!
hwkey-agent: 315: key_mgnt_processing .......
hwkey-agent: 223: Setting EKB key 0 to slot 14
hwkey-agent: 178: Init hweky-agent services!!
luks-srv: 40: luks-srv is running!!
luks-srv: 157: Init luks-srv IPC services!!
platform_bootstrap_epilog: trusty bootstrap complete
[0000.975] I> Welcome to Cboot
[0000.978] I> Cboot Version: t186-00029e71
[0000.982] I> CPU-BL Params @ 0x175800000
[0000.986] I>  0) Base:0x00000000 Size:0x00000000
[0000.990] I>  1) Base:0x177f00000 Size:0x00100000
[0000.995] I>  2) Base:0x177e00000 Size:0x00100000
[0000.999] I>  3) Base:0x177d00000 Size:0x00100000
[0001.004] I>  4) Base:0x177c00000 Size:0x00100000
[0001.008] I>  5) Base:0x177b00000 Size:0x00100000
[0001.013] I>  6) Base:0x177800000 Size:0x00200000
[0001.017] I>  7) Base:0x177400000 Size:0x00400000
[0001.022] I>  8) Base:0x177a00000 Size:0x00100000
[0001.026] I>  9) Base:0x177300000 Size:0x00100000
[0001.031] I> 10) Base:0x176800000 Size:0x00800000
[0001.035] I> 11) Base:0x30000000 Size:0x00040000
[0001.040] I> 12) Base:0xf0000000 Size:0x00100000
[0001.044] I> 13) Base:0x30040000 Size:0x00001000
[0001.049] I> 14) Base:0x30048000 Size:0x00001000
[0001.053] I> 15) Base:0x30049000 Size:0x00001000
[0001.058] I> 16) Base:0x3004a000 Size:0x00001000
[0001.062] I> 17) Base:0x3004b000 Size:0x00001000
[0001.066] I> 18) Base:0x3004c000 Size:0x00001000
[0001.071] I> 19) Base:0x3004d000 Size:0x00001000
[0001.075] I> 20) Base:0x3004e000 Size:0x00001000
[0001.080] I> 21) Base:0x3004f000 Size:0x00001000
[0001.084] I> 22) Base:0x00000000 Size:0x00000000
[0001.089] I> 23) Base:0xf0100000 Size:0x00010000
[0001.093] I> 24) Base:0x00000000 Size:0x00000000
[0001.097] I> 25) Base:0x00000000 Size:0x00000000
[0001.102] I> 26) Base:0x00000000 Size:0x00000000
[0001.106] I> 27) Base:0x00000000 Size:0x00000000
[0001.111] I> 28) Base:0x84400000 Size:0x00400000
[0001.115] I> 29) Base:0x30000000 Size:0x00010000
[0001.120] I> 30) Base:0x178000000 Size:0x08000000
[0001.124] I> 31) Base:0x00000000 Size:0x00000000
[0001.129] I> 32) Base:0x176000000 Size:0x00600000
[0001.133] I> 33) Base:0x80000000 Size:0x70000000
[0001.137] I> 34) Base:0xf0110000 Size:0x856f0000
[0001.142] I> 35) Base:0x00000000 Size:0x00000000
[0001.146] I> 36) Base:0x00000000 Size:0x00000000
[0001.151] I> 37) Base:0x1772e0000 Size:0x00020000
[0001.155] I> 38) Base:0x84000000 Size:0x00400000
[0001.160] I> 39) Base:0x96000000 Size:0x02000000
[0001.164] I> 40) Base:0x85000000 Size:0x01200000
[0001.169] I> 41) Base:0x175800000 Size:0x00500000
[0001.173] I> 42) Base:0x00000000 Size:0x00000000
[0001.178] I> 43) Base:0x00000000 Size:0x00000000
[0001.182] GIC-SPI Target CPU: 4
[0001.185] Interrupts Init done
[0001.189] calling constructors
[0001.192] initializing heap
[0001.194] initializing threads
[0001.198] initializing timers
[0001.201] creating bootstrap completion thread
[0001.206] top of bootstrap2()
[0001.209] CPU: ARM Cortex A57
[0001.212] CPU: MIDR: 0x411FD073, MPIDR: 0x80000100
[0001.217] initializing platform
[0001.220] I> Bl_dtb @0x85205400
[0001.223] I> gpio framework initialized
[0001.228] I> tegrabl_gpio_driver_register: register 'nvidia,tegra186-gpio' driver
[0001.237] I> tegrabl_gpio_driver_register: register 'nvidia,tegra186-gpio-aon' driver
[0001.245] I> GPIO framework and drivers are initialized.
[0001.250] I> Boot-device: eMMC
[0001.257] I> sdmmc bdev is already initialized
[0001.288] I> Found 19 partitions in SDMMC_BOOT (instance 3)
[0001.305] I> Found 33 partitions in SDMMC_USER (instance 3)
[0001.311] W> opt-in fuse is not set, skip fuse_burning
[0001.316] I> Reserved memory at 0xfbe00000 for U-Boot relocation
[0001.322] W> No valid slot number is found in scratch register
[0001.327] W> Return default slot: _a
[0001.337] I> A/B: bin_type (21) slot 0
[0001.340] I> Loading kernel-dtb from partition
[0001.345] I> Loading partition kernel-dtb at 0x80000000 from device(0x1)
[0001.371] I> Kernel_dtb @0x80000000
[0001.374] I> tegrabl_tca9539_init: i2c bus: 0, slave addr: 0xee
[0001.382] W> fetch_driver_phandle_from_dt: failed to get node with compatible ti,tca9539
[0001.392] W> fetch_driver_phandle_from_dt: failed to get node with compatible nxp,tca9539
[0001.400] W> tegrabl_tca9539_init: failed to fetch phandle from dt
[0001.406] I> tegrabl_tca9539_init: i2c bus: 0, slave addr: 0xe8
[0001.413] W> fetch_driver_phandle_from_dt: failed to get node with compatible ti,tca9539
[0001.423] W> fetch_driver_phandle_from_dt: failed to get node with compatible nxp,tca9539
[0001.431] W> tegrabl_tca9539_init: failed to fetch phandle from dt
[0001.439] I> fixed regulator driver initialized
[0001.461] I> register 'maxim' power off handle
[0001.466] I> virtual i2c enabled
[0001.469] I> registered 'maxim,max77620' pmic
[0001.474] I> tegrabl_gpio_driver_register: register 'max77620-gpio' driver
[0001.484] E> failed to read label property for node 149932: 13
[0001.491] E> failed to read reg property for node 150028: 13
[0001.497] E> failed to read reg property for node 150080: 13
[0001.504] E> failed to read label property for node 150164: 13
[0001.511] E> failed to read reg property for node 150232: 13
[0001.518] E> failed to read reg property for node 150304: 13
[0001.525] I> Find /i2c@c250000's alias i2c7
[0001.529] I> Reading eeprom i2c=7 address=0x50
[0001.558] I> Device at /i2c@c250000:0x50
[0001.562] I> Reading eeprom i2c=7 address=0x57
[0001.591] I> Device at /i2c@c250000:0x57
[0001.595] I> Find /i2c@3160000's alias i2c0
[0001.599] I> Reading eeprom i2c=0 address=0x50
[0001.604] E> I2C: slave not found in slaves.
[0001.608] E> I2C: Could not write 0 bytes to slave: 0x00a0 with repeat start true.
[0001.616] E> I2C_DEV: Failed to send register address 0x00000000.
[0001.622] E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xa0 at 0x00000000 via instance 0.
[0001.631] E> eeprom: Failed to read I2C slave device
[0001.636] I> Eeprom read failed 0x3526070d
[0001.641] I> Find /i2c@3180000's alias i2c2
[0001.645] I> Reading eeprom i2c=2 address=0x54
[0001.649] I> Enabling gpio chip_id = 2, gpio pin = 9
[0001.654] C> GPIO driver for chip_id 0x2 could not be found
[0001.659] E> cam_eeprom_read: Can't get gpio driver
[0001.664] I> Eeprom read failed 0x4d4d000d
[0001.668] I> Reading eeprom i2c=2 address=0x57
[0001.672] I> Enabling gpio chip_id = 2, gpio pin = 9
[0001.677] C> GPIO driver for chip_id 0x2 could not be found
[0001.682] E> cam_eeprom_read: Can't get gpio driver
[0001.687] I> Eeprom read failed 0x4d4d000d
[0001.691] I> create_pm_ids: id: 3636-0001-300-H, len: 15
[0001.696] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00,, len: 93
[0001.707] I> create_pm_ids: id: 3449-0000-400-D, len: 15
[0001.712] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00,, len: 93
[0001.735] I> regulator 'vdd-hdmi-5v0' already enabled
[0001.746] I> regulator 'vdd-hdmi-5v0' already enabled
[0001.751] E> tegrabl_display_init_regulator: hdmi cable is not connected
[0001.758] E> tegrabl_display_get_pdata, failed to parse dtb settings
[0001.765] E> cannot find any other nvdisp nodes
[0001.769] E> no valid display unit config found in dtb
[0001.775] W> display init failed
[0001.778] initializing target
[0001.781] calling apps_init()
[0001.784] starting app kernel_boot_app
[0001.807] I> found decompressor handler: lz4-legacy
[0001.812] I> decompressing BMP blob ...
[0001.824] I> Kernel type = Normal
[0001.827] I> ########## Fixed storage boot ##########
[0001.832] I> Loading kernel-bootctrl from partition
[0001.837] I> Loading partition kernel-bootctrl at 0xa8000000 from device(0x1)
[0001.851] W> tegrabl_get_kernel_bootctrl: magic number(0x00000000) is invalid
[0001.858] W> tegrabl_get_kernel_bootctrl: use default dummy boot control data
[0001.865] W> No valid slot number is found in scratch register
[0001.870] W> Return default slot: _a
[0001.874] I> A/B: bin_type (24) slot 0
[0001.889] I> Boot image size read from image header: 20e3008
[0001.895] I> Boot image load address: 0x80400000
[0001.899] I> Loading kernel from partition
[0001.903] I> Loading partition kernel at 0x80400000 from device(0x1)
[0002.846] I> Validate kernel ...
[0002.849] I> T18x: Authenticate kernel (bin_type 24), max size 0x4000000
[0002.930] I> Decrypt the buffer ... [0002.933] W> tegrabl_decrypt_block: fuse (0x0) is not burnt to do encryption (0x4); skip decryption.
[0002.942] I> done
[0002.944] I> Checking boot.img header magic ... [0002.948] I> [OK]
[0002.950] I> kernel-dtb is already loaded
[0002.954] I> Validate kernel-dtb ...
[0002.957] I> T18x: Authenticate kernel-dtb (bin_type 21), max size 0x100000
[0002.964] I> Decrypt the buffer ... [0002.967] W> tegrabl_decrypt_block: fuse (0x0) is not burnt to do encryption (0x4); skip decryption.
[0002.976] I> done
[0002.978] I> Kernel hdr @0x80400000
[0002.981] I> Kernel dtb @0x80000000
[0002.985] I> decompressor handler not found
[0002.989] I> Copying kernel image (34484232 bytes) from 0x80400800 to 0x82800000 ... [0003.010] I> Done
[0003.011] I> Move ramdisk (len: 0) from 0x824e4000 to 0x96820000
[0003.018] I> Updated bpmp info to DTB
[0003.023] I> Ramdisk: Base: 0x96820000; Size: 0x0
[0003.028] I> Updated initrd info to DTB
[0003.031] W> WARN: Fail to override "console=none" in commandline
[0003.037] I> Active rootfs suffix: 
[0003.040] E> tegrabl_linuxboot_add_disp_param, du 0 failed to get display params
[0003.048] E> tegrabl_linuxboot_add_disp_param, du 0 failed to get display params
[0003.055] E> tegrabl_linuxboot_add_disp_param, du 0 failed to get display params
[0003.062] I> disabled_core_mask: 0xffffff0c
[0003.066] W> No valid slot number is found in scratch register
[0003.072] W> Return default slot: _a
[0003.075] I> Active slot suffix: 
[0003.078] I> add_boot_slot_suffix: slot_suffix = 
[0003.083] I> Linux Cmdline: console=ttyS0,115200 root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2  video=tegrafb earlycon=uart82 
[0003.125] I> Updated bootarg info to DTB
[0003.129] W> MAC addr invalid!
[0003.131] E> Failed to get WIFI MAC address
[0003.135] W> MAC addr invalid!
[0003.138] E> Failed to get Bluetooth MAC address
[0003.143] I> eeprom_get_mac_addr: MAC (type: 2): 48:b0:2d:3b:34:44
[0003.149] E> Found no plugin manager ids in source DT
[0003.154] W> Add plugin manager ids from board info
[0003.158] W> "plugin-manager" doesn't exist, creating
[0003.163] W> "ids" doesn't exist, creating
[0003.167] W> "connection" doesn't exist, creating
[0003.172] W> "configs" doesn't exist, creating
[0003.176] I> create_pm_ids: id: 3636-0001-300-H, len: 15
[0003.181] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00,, len: 93
[0003.192] I> create_pm_ids: id: 3449-0000-400-D, len: 15
[0003.197] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00,, len: 93
[0003.208] I> Adding plugin-manager/ids/3636-0001-300=/i2c@c250000:module@0x50
[0003.215] W> "i2c@c250000" doesn't exist, creating
[0003.220] W> "module@0x50" doesn't exist, creating
[0003.225] I> Adding plugin-manager/ids/3449-0000-400=/i2c@c250000:module@0x57
[0003.232] W> "module@0x57" doesn't exist, creating
[0003.238] I> Adding plugin-manager/ids/3636-0001-300-H
[0003.244] I> Adding plugin-manager/configs/3636-mem-type 00
[0003.249] I> Adding plugin-manager/configs/3636-power-config 00
[0003.255] I> Adding plugin-manager/configs/3636-misc-config 00
[0003.261] I> Adding plugin-manager/configs/3636-modem-config 00
[0003.267] I> Adding plugin-manager/configs/3636-touch-config 00
[0003.273] I> Adding plugin-manager/configs/3636-display-config 00
[0003.279] I> Adding plugin-manager/cvm
[0003.283] W> "chip-id" doesn't exist, creating
[0003.287] I> Adding plugin-manager/chip-id/A02P
[0003.292] W> "odm-data" doesn't exist, creating
[0003.296] I> Adding /chosen/plugin-manager/odm-data
[0003.304] I> added [base:0x80000000, size:0x70000000] to /memory
[0003.310] I> added [base:0xf0200000, size:0x85600000] to /memory
[0003.316] I> added [base:0x175e00000, size:0x200000] to /memory
[0003.322] I> added [base:0x176600000, size:0x200000] to /memory
[0003.328] I> added [base:0x177000000, size:0x200000] to /memory
[0003.333] I> Updated memory info to DTB
[0003.337] E> add_disp_param: failed to get display params for du=0
[0003.344] W> "reset" doesn't exist, creating
[0003.348] W> "pmc-reset-reason" doesn't exist, creating
[0003.354] W> "pmic-reset-reason" doesn't exist, creating
[0003.360] I> Adding ecid(00000001647c63c9200000000b058140) to DT
[0003.366] I> disabled_core_mask: 0xffffff0c
[0003.374] I> Add serial number:1420521014626 as DT property
[0003.382] I> Plugin-manager override starting
[0003.387] I> node /plugin-manager/fragement@0 matches
[0003.394] I> node /plugin-manager/fragement@3 matches
[0003.408] I> Disable plugin-manager status in FDT
[0003.412] I> Plugin-manager override finished successfully
[0003.417] I> tegrabl_load_kernel_and_dtb: Done
[0003.422] E> tegrabl_display_clear: display is not initialized
[0003.427] W> Boot logo display failed...
[0003.431] I> Kernel EP: 0x82800000, DTB: 0x80000000
[    0.000000] Booting Linux on physical CPU 0x100
[    0.000000] Linux version 4.9.253-tegra (matiss@ubuntu) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05) ) #3 SMP PREEMPT Fri1
[    0.000000] Boot CPU: AArch64 Processor [411fd073]
[    0.000000] OF: fdt:memory scan node memory@80000000, reg size 80,
[    0.000000] OF: fdt: - 80000000 ,  70000000
[    0.000000] OF: fdt: - f0200000 ,  85600000
[    0.000000] OF: fdt: - 175e00000 ,  200000
[    0.000000] OF: fdt: - 176600000 ,  200000
[    0.000000] OF: fdt: - 177000000 ,  200000
[    0.000000] earlycon: uart8250 at MMIO32 0x0000000003100000 (options '')
[    0.000000] bootconsole [uart8250] enabled
[    0.000000] OF: reserved mem: initialized node vpr-carveout, compatible id nvidia,vpr-carveout
[    0.000000] OF: reserved mem: initialized node ramoops_carveout, compatible id nvidia,ramoops
[    0.000000] cma: Reserved 64 MiB at 0x00000000fc000000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.0 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.1
[    0.000000] percpu: Embedded 24 pages/cpu s57624 r8192 d32488 u98304
[    0.000000] Speculative Store Bypass Disable mitigation not required
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 990776
[    0.000000] Kernel command line: console=ttyS0,115200 root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2  video=tegrafb earlycon 
[    0.000000] log_buf_len individual max cpu contribution: 32768 bytes
[    0.000000] log_buf_len total cpu_extra contributions: 163840 bytes
[    0.000000] log_buf_len min size: 32768 bytes
[    0.000000] log_buf_len: 262144 bytes
[    0.000000] early log buf free: 30076(91%)
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.000000] Memory: 3163200K/4026368K available (15358K kernel code, 2956K rwdata, 6704K rodata, 8640K init, 612K bss, 109504K reserved, 753664K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     modules : 0xffffff8000000000 - 0xffffff8008000000   (   128 MB)
[    0.000000]     vmalloc : 0xffffff8008000000 - 0xffffffbebfff0000   (   250 GB)
[    0.000000]       .text : 0xffffff8008200000 - 0xffffff8009100000   ( 15360 KB)
[    0.000000]     .rodata : 0xffffff8009100000 - 0xffffff8009790000   (  6720 KB)
[    0.000000]       .init : 0xffffff8009790000 - 0xffffff800a000000   (  8640 KB)
[    0.000000]       .data : 0xffffff800a000000 - 0xffffff800a2e3008   (  2957 KB)
[    0.000000]        .bss : 0xffffff800a2e3008 - 0xffffff800a37c0b4   (   613 KB)
[    0.000000]     fixed   : 0xffffffbefe7fd000 - 0xffffffbefec00000   (  4108 KB)
[    0.000000]     PCI I/O : 0xffffffbefee00000 - 0xffffffbeffe00000   (    16 MB)
[    0.000000]     vmemmap : 0xffffffbf00000000 - 0xffffffc000000000   (     4 GB maximum)
[    0.000000]               0xffffffbf00000000 - 0xffffffbf03dc8000   (    61 MB actual)
[    0.000000]     memory  : 0xffffffc000000000 - 0xffffffc0f7200000   (  3954 MB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=6, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Build-time adjustment of leaf fanout to 64.
[    0.000000]  RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=6.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=6
[    0.000000] NR_IRQS:64 nr_irqs:64 0
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] arm_arch_timer: Architected cp15 timer(s) running at 31.25MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0xe6a171046, max_idle_ns: 881590405314 ns
[    0.000003] sched_clock: 56 bits at 31MHz, resolution 32ns, wraps every 4398046511088ns
[    0.009299] Console: colour dummy device 80x25
[    0.013967] console [tty0] enabled
[    0.017533] bootconsole [uart8250] disabled
[    0.000000] Booting Linux on physical CPU 0x100
[    0.000000] Linux version 4.9.253-tegra (matiss@ubuntu) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05) ) #3 SMP PREEMPT Fri1
[    0.000000] Boot CPU: AArch64 Processor [411fd073]
[    0.000000] OF: fdt:memory scan node memory@80000000, reg size 80,
[    0.000000] OF: fdt: - 80000000 ,  70000000
[    0.000000] OF: fdt: - f0200000 ,  85600000
[    0.000000] OF: fdt: - 175e00000 ,  200000
[    0.000000] OF: fdt: - 176600000 ,  200000
[    0.000000] OF: fdt: - 177000000 ,  200000
[    0.000000] earlycon: uart8250 at MMIO32 0x0000000003100000 (options '')
[    0.000000] bootconsole [uart8250] enabled
[    0.000000] OF: reserved mem: initialized node vpr-carveout, compatible id nvidia,vpr-carveout
[    0.000000] OF: reserved mem: initialized node ramoops_carveout, compatible id nvidia,ramoops
[    0.000000] cma: Reserved 64 MiB at 0x00000000fc000000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.0 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.1
[    0.000000] percpu: Embedded 24 pages/cpu s57624 r8192 d32488 u98304
[    0.000000] Speculative Store Bypass Disable mitigation not required
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 990776
[    0.000000] Kernel command line: console=ttyS0,115200 root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2  video=tegrafb earlycon 
[    0.000000] log_buf_len individual max cpu contribution: 32768 bytes
[    0.000000] log_buf_len total cpu_extra contributions: 163840 bytes
[    0.000000] log_buf_len min size: 32768 bytes
[    0.000000] log_buf_len: 262144 bytes
[    0.000000] early log buf free: 30076(91%)
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.000000] Memory: 3163200K/4026368K available (15358K kernel code, 2956K rwdata, 6704K rodata, 8640K init, 612K bss, 109504K reserved, 753664K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     modules : 0xffffff8000000000 - 0xffffff8008000000   (   128 MB)
[    0.000000]     vmalloc : 0xffffff8008000000 - 0xffffffbebfff0000   (   250 GB)
[    0.000000]       .text : 0xffffff8008200000 - 0xffffff8009100000   ( 15360 KB)
[    0.000000]     .rodata : 0xffffff8009100000 - 0xffffff8009790000   (  6720 KB)
[    0.000000]       .init : 0xffffff8009790000 - 0xffffff800a000000   (  8640 KB)
[    0.000000]       .data : 0xffffff800a000000 - 0xffffff800a2e3008   (  2957 KB)
[    0.000000]        .bss : 0xffffff800a2e3008 - 0xffffff800a37c0b4   (   613 KB)
[    0.000000]     fixed   : 0xffffffbefe7fd000 - 0xffffffbefec00000   (  4108 KB)
[    0.000000]     PCI I/O : 0xffffffbefee00000 - 0xffffffbeffe00000   (    16 MB)
[    0.000000]     vmemmap : 0xffffffbf00000000 - 0xffffffc000000000   (     4 GB maximum)
[    0.000000]               0xffffffbf00000000 - 0xffffffbf03dc8000   (    61 MB actual)
[    0.000000]     memory  : 0xffffffc000000000 - 0xffffffc0f7200000   (  3954 MB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=6, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Build-time adjustment of leaf fanout to 64.
[    0.000000]  RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=6.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=6
[    0.000000] NR_IRQS:64 nr_irqs:64 0
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] arm_arch_timer: Architected cp15 timer(s) running at 31.25MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0xe6a171046, max_idle_ns: 881590405314 ns
[    0.000003] sched_clock: 56 bits at 31MHz, resolution 32

I suppose it’s something to do with the display timing, because it’s 31.25 MHz in DTS:

display-timings {
					480x800-32 {
						clock-frequency = <31250000>;
						hactive = <480>;
						vactive = <800>;
						hfront-porch = <46>;
						hback-porch = <44>;
						hsync-len = <4>;
						vfront-porch = <15>;
						vback-porch = <16>;
						vsync-len = <1>;
						nvidia,h-ref-to-sync = <0>;	// ?
						nvidia,v-ref-to-sync = <1>;	// ?
					};
				};

There is no log printed out from the display controller.

If the log is just getting stuck there, please add this to your /boot/extlinux/extlinux.conf as kernel command line.

+CMDLINE_ADD=“fbcon=map:0 net.ifnames=0 rootfstype=ext4 console=none keep_bootcon”;

This will print out more log until it gets stuck. This is surprising that enabling the panel node causes the boot stuck.

Yes, that is weird. Here’s the log after adding to extlinux.conf. But I don’t know if it really worked? I don’t see anything more

[0000.137] I> Welcome to MB2(TBoot-BPMP)(version: 01.00.160913-t186-M-00.00-mobile-c368a720)
[0000.145] I> Boot-device: eMMC
[0000.152] I> sdmmc bdev is already initialized
[0000.157] I> pmic: reset reason (nverc)        : 0x0
[0000.190] I> Found 19 partitions in SDMMC_BOOT (instance 3)
[0000.210] I> Found 33 partitions in SDMMC_USER (instance 3)
[0000.216] W> No valid slot number is found in scratch register
[0000.222] W> Return default slot: _a
[0000.225] I> A/B: bin_type (16) slot 0
[0000.229] I> Loading partition bpmp-fw at 0xd7800000
[0000.233] I> Reading two headers - addr:0xd7800000 blocks:1
[0000.239] I> Addr: 0xd7800000, start-block: 29417480, num_blocks: 1
[0000.264] I> Binary(16) of size 534416 is loaded @ 0xd7800000
[0000.269] W> No valid slot number is found in scratch register
[0000.275] W> Return default slot: _a
[0000.279] I> A/B: bin_type (17) slot 0
[0000.282] I> Loading partition bpmp-fw-dtb at 0xd79f0000
[0000.287] I> Reading two headers - addr:0xd79f0000 blocks:1
[0000.293] I> Addr: 0xd79f0000, start-block: 29419896, num_blocks: 1
[0000.312] I> Binary(17) of size 113248 is loaded @ 0xd79e4400
[0000.340] I> Loading SCE-FW ...
[0000.343] W> No valid slot number is found in scratch register
[0000.349] W> Return default slot: _a
[0000.352] I> A/B: bin_type (12) slot 0
[0000.356] I> Loading partition sce-fw at 0xd7300000
[0000.360] I> Reading two headers - addr:0xd7300000 blocks:1
[0000.366] I> Addr: 0xd7300000, start-block: 29423992, num_blocks: 1
[0000.385] I> Binary(12) of size 125632 is loaded @ 0xd7300000
[0000.391] I> Init SCE
[0000.393] I> Loading APE-FW ...
[0000.396] W> No valid slot number is found in scratch register
[0000.402] W> Return default slot: _a
[0000.405] I> A/B: bin_type (11) slot 0
[0000.409] I> Loading partition adsp-fw at 0xd7400000
[0000.414] I> Reading two headers - addr:0xd7400000 blocks:1
[0000.419] I> Addr: 0xd7400000, start-block: 29401096, num_blocks: 1
[0000.438] I> Binary(11) of size 77216 is loaded @ 0xd7400000
[0000.444] I> Copy BTCM section
[0000.447] W> No valid slot number is found in scratch register
[0000.452] W> Return default slot: _a
[0000.456] I> A/B: bin_type (13) slot 0
[0000.459] I> Loading partition cpu-bootloader at 0x96000000
[0000.465] I> Reading two headers - addr:0x96000000 blocks:1
[0000.470] I> Addr: 0x96000000, start-block: 29380616, num_blocks: 1
[0000.491] I> Binary(13) of size 308800 is loaded @ 0x96000000
[0000.497] W> No valid slot number is found in scratch register
[0000.503] W> Return default slot: _a
[0000.506] I> A/B: bin_type (20) slot 0
[0000.510] I> Loading partition bootloader-dtb at 0x85205400
[0000.515] I> Reading two headers - addr:0x85205400 blocks:1
[0000.521] I> Addr: 0x85205400, start-block: 29382664, num_blocks: 1
[0000.540] I> Binary(20) of size 192320 is loaded @ 0x85205400
[0000.546] W> No valid slot number is found in scratch register
[0000.552] W> Return default slot: _a
[0000.555] I> A/B: bin_type (14) slot 0
[0000.559] I> Loading partition secure-os at 0x85305600
[0000.564] I> Reading two headers - addr:0x85305600 blocks:1
[0000.569] I> Addr: 0x85305600, start-block: 29384712, num_blocks: 1
[0000.591] I> Binary(14) of size 402864 is loaded @ 0x85305600
[0000.599] I> TOS boot-params @ 0x85000000
[0000.603] I> TOS params prepared
[0000.606] I> Loading EKS ...
[0000.609] I> A/B: bin_type (15) slot 0
[0000.612] I> Loading partition eks at 0x85905800
[0000.617] I> Reading two headers - addr:0x85905800 blocks:1
[0000.622] I> Addr: 0x85905800, start-block: 29397000, num_blocks: 1
[0000.641] I> Binary(15) of size 1040 is loaded @ 0x85905800
[0000.646] I> EKB detected (length: 0x400) @ 0x85905800
[0000.652] I> Copied encrypted keys
[0000.655] I> boot profiler @ 0x175844000
[0000.659] I> boot profiler for TOS @ 0x175844000
[0000.664] I> Unhalting SCE
[0000.666] I> Primary Memory Start:80000000 Size:70000000
[0000.672] I> Extended Memory Start:f0110000 Size:856f0000
[0000.678] I> MB2(TBoot-BPMP) done

NOTICE:  BL31: v1.3(release):b5eeb33f7
NOTICE:  BL31: Built : 12:15:17, Jul 26 2021
ipc-unittest-main: 1519: Welcome to IPC unittest!!!
ipc-unittest-main: 1531: waiting forever
ipc-unittest-srv: 329: Init unittest services!!!
hwkey-agent: 41: hwkey-agent is running!!
hwkey-agent: 315: key_mgnt_processing .......
hwkey-agent: 223: Setting EKB key 0 to slot 14
hwkey-agent: 178: Init hweky-agent services!!
luks-srv: 40: luks-srv is running!!
luks-srv: 157: Init luks-srv IPC services!!
platform_bootstrap_epilog: trusty bootstrap complete
[0000.901] I> Welcome to Cboot
[0000.903] I> Cboot Version: t186-00029e71
[0000.907] I> CPU-BL Params @ 0x175800000
[0000.911] I>  0) Base:0x00000000 Size:0x00000000
[0000.915] I>  1) Base:0x177f00000 Size:0x00100000
[0000.920] I>  2) Base:0x177e00000 Size:0x00100000
[0000.924] I>  3) Base:0x177d00000 Size:0x00100000
[0000.929] I>  4) Base:0x177c00000 Size:0x00100000
[0000.933] I>  5) Base:0x177b00000 Size:0x00100000
[0000.938] I>  6) Base:0x177800000 Size:0x00200000
[0000.943] I>  7) Base:0x177400000 Size:0x00400000
[0000.947] I>  8) Base:0x177a00000 Size:0x00100000
[0000.952] I>  9) Base:0x177300000 Size:0x00100000
[0000.956] I> 10) Base:0x176800000 Size:0x00800000
[0000.961] I> 11) Base:0x30000000 Size:0x00040000
[0000.965] I> 12) Base:0xf0000000 Size:0x00100000
[0000.969] I> 13) Base:0x30040000 Size:0x00001000
[0000.974] I> 14) Base:0x30048000 Size:0x00001000
[0000.978] I> 15) Base:0x30049000 Size:0x00001000
[0000.983] I> 16) Base:0x3004a000 Size:0x00001000
[0000.987] I> 17) Base:0x3004b000 Size:0x00001000
[0000.992] I> 18) Base:0x3004c000 Size:0x00001000
[0000.996] I> 19) Base:0x3004d000 Size:0x00001000
[0001.000] I> 20) Base:0x3004e000 Size:0x00001000
[0001.005] I> 21) Base:0x3004f000 Size:0x00001000
[0001.009] I> 22) Base:0x00000000 Size:0x00000000
[0001.014] I> 23) Base:0xf0100000 Size:0x00010000
[0001.018] I> 24) Base:0x00000000 Size:0x00000000
[0001.023] I> 25) Base:0x00000000 Size:0x00000000
[0001.027] I> 26) Base:0x00000000 Size:0x00000000
[0001.031] I> 27) Base:0x00000000 Size:0x00000000
[0001.036] I> 28) Base:0x84400000 Size:0x00400000
[0001.040] I> 29) Base:0x30000000 Size:0x00010000
[0001.045] I> 30) Base:0x178000000 Size:0x08000000
[0001.049] I> 31) Base:0x00000000 Size:0x00000000
[0001.054] I> 32) Base:0x176000000 Size:0x00600000
[0001.058] I> 33) Base:0x80000000 Size:0x70000000
[0001.063] I> 34) Base:0xf0110000 Size:0x856f0000
[0001.067] I> 35) Base:0x00000000 Size:0x00000000
[0001.072] I> 36) Base:0x00000000 Size:0x00000000
[0001.076] I> 37) Base:0x1772e0000 Size:0x00020000
[0001.080] I> 38) Base:0x84000000 Size:0x00400000
[0001.085] I> 39) Base:0x96000000 Size:0x02000000
[0001.089] I> 40) Base:0x85000000 Size:0x01200000
[0001.094] I> 41) Base:0x175800000 Size:0x00500000
[0001.098] I> 42) Base:0x00000000 Size:0x00000000
[0001.103] I> 43) Base:0x00000000 Size:0x00000000
[0001.107] GIC-SPI Target CPU: 4
[0001.111] Interrupts Init done
[0001.114] calling constructors
[0001.117] initializing heap
[0001.120] initializing threads
[0001.123] initializing timers
[0001.126] creating bootstrap completion thread
[0001.131] top of bootstrap2()
[0001.134] CPU: ARM Cortex A57
[0001.137] CPU: MIDR: 0x411FD073, MPIDR: 0x80000100
[0001.142] initializing platform
[0001.146] I> Bl_dtb @0x85205400
[0001.149] I> gpio framework initialized
[0001.154] I> tegrabl_gpio_driver_register: register 'nvidia,tegra186-gpio' driver
[0001.162] I> tegrabl_gpio_driver_register: register 'nvidia,tegra186-gpio-aon' driver
[0001.170] I> GPIO framework and drivers are initialized.
[0001.175] I> Boot-device: eMMC
[0001.182] I> sdmmc bdev is already initialized
[0001.213] I> Found 19 partitions in SDMMC_BOOT (instance 3)
[0001.231] I> Found 33 partitions in SDMMC_USER (instance 3)
[0001.236] W> opt-in fuse is not set, skip fuse_burning
[0001.241] I> Reserved memory at 0xfbe00000 for U-Boot relocation
[0001.247] W> No valid slot number is found in scratch register
[0001.253] W> Return default slot: _a
[0001.262] I> A/B: bin_type (21) slot 0
[0001.266] I> Loading kernel-dtb from partition
[0001.270] I> Loading partition kernel-dtb at 0x80000000 from device(0x1)
[0001.287] I> Kernel_dtb @0x80000000
[0001.291] I> tegrabl_tca9539_init: i2c bus: 0, slave addr: 0xee
[0001.299] W> fetch_driver_phandle_from_dt: failed to get node with compatible ti,tca9539
[0001.308] W> fetch_driver_phandle_from_dt: failed to get node with compatible nxp,tca9539
[0001.316] W> tegrabl_tca9539_init: failed to fetch phandle from dt
[0001.322] I> tegrabl_tca9539_init: i2c bus: 0, slave addr: 0xe8
[0001.330] W> fetch_driver_phandle_from_dt: failed to get node with compatible ti,tca9539
[0001.340] W> fetch_driver_phandle_from_dt: failed to get node with compatible nxp,tca9539
[0001.348] W> tegrabl_tca9539_init: failed to fetch phandle from dt
[0001.356] I> fixed regulator driver initialized
[0001.378] I> register 'maxim' power off handle
[0001.383] I> virtual i2c enabled
[0001.386] I> registered 'maxim,max77620' pmic
[0001.390] I> tegrabl_gpio_driver_register: register 'max77620-gpio' driver
[0001.401] E> failed to read label property for node 149932: 13
[0001.407] E> failed to read reg property for node 150028: 13
[0001.414] E> failed to read reg property for node 150080: 13
[0001.421] E> failed to read label property for node 150164: 13
[0001.428] E> failed to read reg property for node 150232: 13
[0001.435] E> failed to read reg property for node 150304: 13
[0001.442] I> Find /i2c@c250000's alias i2c7
[0001.446] I> Reading eeprom i2c=7 address=0x50
[0001.475] I> Device at /i2c@c250000:0x50
[0001.479] I> Reading eeprom i2c=7 address=0x57
[0001.508] I> Device at /i2c@c250000:0x57
[0001.512] I> Find /i2c@3160000's alias i2c0
[0001.516] I> Reading eeprom i2c=0 address=0x50
[0001.521] E> I2C: slave not found in slaves.
[0001.525] E> I2C: Could not write 0 bytes to slave: 0x00a0 with repeat start true.
[0001.533] E> I2C_DEV: Failed to send register address 0x00000000.
[0001.538] E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xa0 at 0x00000000 via instance 0.
[0001.548] E> eeprom: Failed to read I2C slave device
[0001.553] I> Eeprom read failed 0x3526070d
[0001.557] I> Find /i2c@3180000's alias i2c2
[0001.561] I> Reading eeprom i2c=2 address=0x54
[0001.566] I> Enabling gpio chip_id = 2, gpio pin = 9
[0001.570] C> GPIO driver for chip_id 0x2 could not be found
[0001.576] E> cam_eeprom_read: Can't get gpio driver
[0001.580] I> Eeprom read failed 0x4d4d000d
[0001.584] I> Reading eeprom i2c=2 address=0x57
[0001.589] I> Enabling gpio chip_id = 2, gpio pin = 9
[0001.593] C> GPIO driver for chip_id 0x2 could not be found
[0001.599] E> cam_eeprom_read: Can't get gpio driver
[0001.603] I> Eeprom read failed 0x4d4d000d
[0001.607] I> create_pm_ids: id: 3636-0001-300-H, len: 15
[0001.613] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00,, len: 93
[0001.623] I> create_pm_ids: id: 3449-0000-400-D, len: 15
[0001.629] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00,, len: 93
[0001.652] I> regulator 'vdd-hdmi-5v0' already enabled
[0001.663] I> regulator 'vdd-hdmi-5v0' already enabled
[0001.668] E> tegrabl_display_init_regulator: hdmi cable is not connected
[0001.674] E> tegrabl_display_get_pdata, failed to parse dtb settings
[0001.682] E> cannot find any other nvdisp nodes
[0001.686] E> no valid display unit config found in dtb
[0001.692] W> display init failed
[0001.695] initializing target
[0001.698] calling apps_init()
[0001.701] starting app kernel_boot_app
[0001.723] I> found decompressor handler: lz4-legacy
[0001.728] I> decompressing BMP blob ...
[0001.740] I> Kernel type = Normal
[0001.744] I> ########## Fixed storage boot ##########
[0001.748] I> Loading kernel-bootctrl from partition
[0001.753] I> Loading partition kernel-bootctrl at 0xa8000000 from device(0x1)
[0001.767] W> tegrabl_get_kernel_bootctrl: magic number(0x00000000) is invalid
[0001.774] W> tegrabl_get_kernel_bootctrl: use default dummy boot control data
[0001.781] W> No valid slot number is found in scratch register
[0001.787] W> Return default slot: _a
[0001.790] I> A/B: bin_type (24) slot 0
[0001.806] I> Boot image size read from image header: 20e3008
[0001.811] I> Boot image load address: 0x80400000
[0001.816] I> Loading kernel from partition
[0001.820] I> Loading partition kernel at 0x80400000 from device(0x1)
[0002.763] I> Validate kernel ...
[0002.766] I> T18x: Authenticate kernel (bin_type 24), max size 0x4000000
[0002.846] I> Decrypt the buffer ... [0002.850] W> tegrabl_decrypt_block: fuse (0x0) is not burnt to do encryption (0x4); skip decryption.
[0002.859] I> done
[0002.860] I> Checking boot.img header magic ... [0002.865] I> [OK]
[0002.866] I> kernel-dtb is already loaded
[0002.870] I> Validate kernel-dtb ...
[0002.874] I> T18x: Authenticate kernel-dtb (bin_type 21), max size 0x100000
[0002.881] I> Decrypt the buffer ... [0002.884] W> tegrabl_decrypt_block: fuse (0x0) is not burnt to do encryption (0x4); skip decryption.
[0002.893] I> done
[0002.895] I> Kernel hdr @0x80400000
[0002.898] I> Kernel dtb @0x80000000
[0002.901] I> decompressor handler not found
[0002.905] I> Copying kernel image (34484232 bytes) from 0x80400800 to 0x82800000 ... [0002.926] I> Done
[0002.928] I> Move ramdisk (len: 0) from 0x824e4000 to 0x96820000
[0002.935] I> Updated bpmp info to DTB
[0002.940] I> Ramdisk: Base: 0x96820000; Size: 0x0
[0002.944] I> Updated initrd info to DTB
[0002.948] W> WARN: Fail to override "console=none" in commandline
[0002.954] I> Active rootfs suffix: 
[0002.957] E> tegrabl_linuxboot_add_disp_param, du 0 failed to get display params
[0002.964] E> tegrabl_linuxboot_add_disp_param, du 0 failed to get display params
[0002.971] E> tegrabl_linuxboot_add_disp_param, du 0 failed to get display params
[0002.979] I> disabled_core_mask: 0xffffff0c
[0002.983] W> No valid slot number is found in scratch register
[0002.988] W> Return default slot: _a
[0002.992] I> Active slot suffix: 
[0002.995] I> add_boot_slot_suffix: slot_suffix = 
[0002.999] I> Linux Cmdline: console=ttyS0,115200 root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2  video=tegrafb earlycon=uart82 
[0003.041] I> Updated bootarg info to DTB
[0003.045] W> MAC addr invalid!
[0003.048] E> Failed to get WIFI MAC address
[0003.052] W> MAC addr invalid!
[0003.055] E> Failed to get Bluetooth MAC address
[0003.059] I> eeprom_get_mac_addr: MAC (type: 2): 48:b0:2d:3b:34:44
[0003.065] E> Found no plugin manager ids in source DT
[0003.070] W> Add plugin manager ids from board info
[0003.075] W> "plugin-manager" doesn't exist, creating
[0003.080] W> "ids" doesn't exist, creating
[0003.084] W> "connection" doesn't exist, creating
[0003.088] W> "configs" doesn't exist, creating
[0003.093] I> create_pm_ids: id: 3636-0001-300-H, len: 15
[0003.098] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00,, len: 93
[0003.109] I> create_pm_ids: id: 3449-0000-400-D, len: 15
[0003.114] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00,, len: 93
[0003.125] I> Adding plugin-manager/ids/3636-0001-300=/i2c@c250000:module@0x50
[0003.132] W> "i2c@c250000" doesn't exist, creating
[0003.137] W> "module@0x50" doesn't exist, creating
[0003.142] I> Adding plugin-manager/ids/3449-0000-400=/i2c@c250000:module@0x57
[0003.149] W> "module@0x57" doesn't exist, creating
[0003.154] I> Adding plugin-manager/ids/3636-0001-300-H
[0003.160] I> Adding plugin-manager/configs/3636-mem-type 00
[0003.166] I> Adding plugin-manager/configs/3636-power-config 00
[0003.172] I> Adding plugin-manager/configs/3636-misc-config 00
[0003.178] I> Adding plugin-manager/configs/3636-modem-config 00
[0003.184] I> Adding plugin-manager/configs/3636-touch-config 00
[0003.190] I> Adding plugin-manager/configs/3636-display-config 00
[0003.196] I> Adding plugin-manager/cvm
[0003.199] W> "chip-id" doesn't exist, creating
[0003.204] I> Adding plugin-manager/chip-id/A02P
[0003.208] W> "odm-data" doesn't exist, creating
[0003.213] I> Adding /chosen/plugin-manager/odm-data
[0003.221] I> added [base:0x80000000, size:0x70000000] to /memory
[0003.227] I> added [base:0xf0200000, size:0x85600000] to /memory
[0003.233] I> added [base:0x175e00000, size:0x200000] to /memory
[0003.238] I> added [base:0x176600000, size:0x200000] to /memory
[0003.244] I> added [base:0x177000000, size:0x200000] to /memory
[0003.250] I> Updated memory info to DTB
[0003.254] E> add_disp_param: failed to get display params for du=0
[0003.261] W> "reset" doesn't exist, creating
[0003.265] W> "pmc-reset-reason" doesn't exist, creating
[0003.270] W> "pmic-reset-reason" doesn't exist, creating
[0003.277] I> Adding ecid(00000001647c63c9200000000b058140) to DT
[0003.282] I> disabled_core_mask: 0xffffff0c
[0003.291] I> Add serial number:1420521014626 as DT property
[0003.298] I> Plugin-manager override starting
[0003.303] I> node /plugin-manager/fragement@0 matches
[0003.311] I> node /plugin-manager/fragement@3 matches
[0003.324] I> Disable plugin-manager status in FDT
[0003.329] I> Plugin-manager override finished successfully
[0003.334] I> tegrabl_load_kernel_and_dtb: Done
[0003.338] E> tegrabl_display_clear: display is not initialized
[0003.344] W> Boot logo display failed...
[0003.348] I> Kernel EP: 0x82800000, DTB: 0x80000000
[    0.000000] Booting Linux on physical CPU 0x100
[    0.000000] Linux version 4.9.253-tegra (matiss@ubuntu) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05) ) #3 SMP PREEMPT Fri1
[    0.000000] Boot CPU: AArch64 Processor [411fd073]
[    0.000000] OF: fdt:memory scan node memory@80000000, reg size 80,
[    0.000000] OF: fdt: - 80000000 ,  70000000
[    0.000000] OF: fdt: - f0200000 ,  85600000
[    0.000000] OF: fdt: - 175e00000 ,  200000
[    0.000000] OF: fdt: - 176600000 ,  200000
[    0.000000] OF: fdt: - 177000000 ,  200000
[    0.000000] earlycon: uart8250 at MMIO32 0x0000000003100000 (options '')
[    0.000000] bootconsole [uart8250] enabled
[    0.000000] OF: reserved mem: initialized node vpr-carveout, compatible id nvidia,vpr-carveout
[    0.000000] OF: reserved mem: initialized node ramoops_carveout, compatible id nvidia,ramoops
[    0.000000] cma: Reserved 64 MiB at 0x00000000fc000000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.0 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.1
[    0.000000] percpu: Embedded 24 pages/cpu s57624 r8192 d32488 u98304
[    0.000000] Speculative Store Bypass Disable mitigation not required
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 990776
[    0.000000] Kernel command line: console=ttyS0,115200 root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2  video=tegrafb earlycon 
[    0.000000] log_buf_len individual max cpu contribution: 32768 bytes
[    0.000000] log_buf_len total cpu_extra contributions: 163840 bytes
[    0.000000] log_buf_len min size: 32768 bytes
[    0.000000] log_buf_len: 262144 bytes
[    0.000000] early log buf free: 30076(91%)
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.000000] Memory: 3163200K/4026368K available (15358K kernel code, 2956K rwdata, 6704K rodata, 8640K init, 612K bss, 109504K reserved, 753664K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     modules : 0xffffff8000000000 - 0xffffff8008000000   (   128 MB)
[    0.000000]     vmalloc : 0xffffff8008000000 - 0xffffffbebfff0000   (   250 GB)
[    0.000000]       .text : 0xffffff8008200000 - 0xffffff8009100000   ( 15360 KB)
[    0.000000]     .rodata : 0xffffff8009100000 - 0xffffff8009790000   (  6720 KB)
[    0.000000]       .init : 0xffffff8009790000 - 0xffffff800a000000   (  8640 KB)
[    0.000000]       .data : 0xffffff800a000000 - 0xffffff800a2e3008   (  2957 KB)
[    0.000000]        .bss : 0xffffff800a2e3008 - 0xffffff800a37c0b4   (   613 KB)
[    0.000000]     fixed   : 0xffffffbefe7fd000 - 0xffffffbefec00000   (  4108 KB)
[    0.000000]     PCI I/O : 0xffffffbefee00000 - 0xffffffbeffe00000   (    16 MB)
[    0.000000]     vmemmap : 0xffffffbf00000000 - 0xffffffc000000000   (     4 GB maximum)
[    0.000000]               0xffffffbf00000000 - 0xffffffbf03dc8000   (    61 MB actual)
[    0.000000]     memory  : 0xffffffc000000000 - 0xffffffc0f7200000   (  3954 MB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=6, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Build-time adjustment of leaf fanout to 64.
[    0.000000]  RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=6.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=6
[    0.000000] NR_IRQS:64 nr_irqs:64 0
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] arm_arch_timer: Architected cp15 timer(s) running at 31.25MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0xe6a171046, max_idle_ns: 881590405314 ns
[    0.000003] sched_clock: 56 bits at 31MHz, resolution 32ns, wraps every 4398046511088ns
[    0.009305] Console: colour dummy device 80x25
[    0.013976] console [tty0] enabled
[    0.017539] bootconsole [uart8250] disabled
[    0.000000] Booting Linux on physical CPU 0x100
[    0.000000] Linux version 4.9.253-tegra (matiss@ubuntu) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05) ) #3 SMP PREEMPT Fri1
[    0.000000] Boot CPU: AArch64 Processor [411fd073]
[    0.000000] OF: fdt:memory scan node memory@80000000, reg size 80,
[    0.000000] OF: fdt: - 80000000 ,  70000000
[    0.000000] OF: fdt: - f0200000 ,  85600000
[    0.000000] OF: fdt: - 175e00000 ,  200000
[    0.000000] OF: fdt: - 176600000 ,  200000
[    0.000000] OF: fdt: - 177000000 ,  200000
[    0.000000] earlycon: uart8250 at MMIO32 0x0000000003100000 (options '')
[    0.000000] bootconsole [uart8250] enabled
[    0.000000] OF: reserved mem: initialized node vpr-carveout, compatible id nvidia,vpr-carveout
[    0.000000] OF: reserved mem: initialized node ramoops_carveout, compatible id nvidia,ramoops
[    0.000000] cma: Reserved 64 MiB at 0x00000000fc000000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.0 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.1
[    0.000000] percpu: Embedded 24 pages/cpu s57624 r8192 d32488 u98304
[    0.000000] Speculative Store Bypass Disable mitigation not required
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 990776
[    0.000000] Kernel command line: console=ttyS0,115200 root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2  video=tegrafb earlycon 
[    0.000000] log_buf_len individual max cpu contribution: 32768 bytes
[    0.000000] log_buf_len total cpu_extra contributions: 163840 bytes
[    0.000000] log_buf_len min size: 32768 bytes
[    0.000000] log_buf_len: 262144 bytes
[    0.000000] early log buf free: 30076(91%)
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.000000] Memory: 3163200K/4026368K available (15358K kernel code, 2956K rwdata, 6704K rodata, 8640K init, 612K bss, 109504K reserved, 753664K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     modules : 0xffffff8000000000 - 0xffffff8008000000   (   128 MB)
[    0.000000]     vmalloc : 0xffffff8008000000 - 0xffffffbebfff0000   (   250 GB)
[    0.000000]       .text : 0xffffff8008200000 - 0xffffff8009100000   ( 15360 KB)
[    0.000000]     .rodata : 0xffffff8009100000 - 0xffffff8009790000   (  6720 KB)
[    0.000000]       .init : 0xffffff8009790000 - 0xffffff800a000000   (  8640 KB)
[    0.000000]       .data : 0xffffff800a000000 - 0xffffff800a2e3008   (  2957 KB)
[    0.000000]        .bss : 0xffffff800a2e3008 - 0xffffff800a37c0b4   (   613 KB)
[    0.000000]     fixed   : 0xffffffbefe7fd000 - 0xffffffbefec00000   (  4108 KB)
[    0.000000]     PCI I/O : 0xffffffbefee00000 - 0xffffffbeffe00000   (    16 MB)
[    0.000000]     vmemmap : 0xffffffbf00000000 - 0xffffffc000000000   (     4 GB maximum)
[    0.000000]               0xffffffbf00000000 - 0xffffffbf03dc8000   (    61 MB actual)
[    0.000000]     memory  : 0xffffffc000000000 - 0xffffffc0f7200000   (  3954 MB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=6, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Build-time adjustment of leaf fanout to 64.
[    0.000000]  RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=6.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=6
[    0.000000] NR_IRQS:64 nr_irqs:64 0
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] arm_arch_timer: Architected cp15 timer(s) running at 31.25MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0xe6a171046, max_idle_ns: 8815904

Notice something weird here. Why does your boot log not have a uboot log?

Did you change any configuration here?

Okay, so I decided to do everything from scratch and redid some things. Here’s my DTS (Now I want DisplayPort and DSI to work together, DisplayPort as main monitor, DSI as secondary)

host1x {
		nvdisplay@15200000 {	// DSI
			status = "okay";
			nvidia,dc-or-node = "/host1x/dsi";
			nvidia,dc-connector = <&dsi>;
			nvidia,fb-win = <0>;
			win-mask = <0xa>;
		};
		nvdisplay@15210000 {	// DisplayPort
			status = "okay";
			nvidia,dc-or-node = "/host1x/sor";
			nvidia,dc-connector = <&sor0>;
			nvidia,fb-win = <2>;
			win-mask = <0xc>;
		};
		dsi {
			status = "okay";
			nvidia,active-panel = <&panel_s_microtech>;
			panel-s-microtech {
				bootloader-status = "disabled";
				status = "okay";
			};
		};
		sor {
			status = "okay";
			nvidia,active-panel = <&sor0_dp_display>;
			dp-display {
				status = "okay";
			};
		};
		sor1 {
			status = "disabled";
			nvidia,active-panel = <&sor1_hdmi_display>;
			hdmi-display {
				status = "disabled";
			};
		};
		dpaux@155c0000 {
			status = "okay";
		};
		dpaux@15040000 {
			status = "disabled";
		};
	};

The main thing I noticed that the boot freeze appears when I’m using presumably incorrect nvidia,fb-win and win-mask. I have tried setting all these values I could find in the sources and all of them freeze up on boot, when adding to nvdisplay1520000.

	// Possible fb-win, win-mask combos:
	// 0 0x3
	// 0 0x7
	// 2 0xc
	// 3 0x38
	// 3 0x18
	// 4 0x30
	// 5 0x20

However, I managed to get this far when I set random values of nvidia,fb-win and win-mask. Here’s the log when I set the nvidia,fb-win and win-mask to 0 and 0xa respectively.

[    0.675226] tegradccommon 15200000.dc_common: host1x channel mapped
[    0.675246] tegradccommon 15200000.dc_common: dc_common syncpt # 1 allocated
[    0.675288] tegradccommon 15200000.dc_common: dma mapping done
[    0.675918] tegradc 15200000.nvdisplay: disp0 connected to head0->/host1x/dsi
[    0.676221] tegradc 15200000.nvdisplay: No hpd-gpio in DT
[    0.676260] tegradc 15200000.nvdisplay: DT parsed successfully
[    0.676291] tegradc 15200000.nvdisplay: Display dc.ffffff800b3e0000 registered with id=0
[    0.682019] tegra_nvdisp_bandwidth_register_max_config: max config iso bw = 16727000 KB/s
[    0.682040] tegra_nvdisp_bandwidth_register_max_config: max config EMC floor = 665600000 Hz
[    0.682058] tegra_nvdisp_bandwidth_register_max_config: max config hubclk = 357620000 Hz
[    0.682235] tegradc 15200000.nvdisplay: vblank syncpt # 8 for dc 0
[    0.682251] tegradc 15200000.nvdisplay: vpulse3 syncpt # 9 for dc 0
[    0.686500] tegradc 15200000.nvdisplay: probed
[    0.686521] tegradc 15200000.nvdisplay: dc does not have a window at index 0
[    0.686535] tegradc 15200000.nvdisplay: failed to register fb
[    0.687150] tegra-adma 2930000.adma: Tegra210 ADMA driver registered 32 channels
[    0.687558] tegradc: probe of 15200000.nvdisplay failed with error -22
[    0.687742] tegra-fuse-burn 3820000.efuse:efuse-burn: shutdown limit check disabled
[    0.687779] tegra-fuse-burn 3820000.efuse:efuse-burn: Fuse burn driver initialized
[    0.687997] tegradc 15210000.nvdisplay: disp0 connected to head1->/host1x/sor
[    0.688185] tegradc 15210000.nvdisplay: DT parsed successfully
[    0.688221] tegradc 15210000.nvdisplay: Display dc.ffffff800b710000 registered with id=0
[    0.688288] kfuse 3830000.kfuse: initialized
[    0.688427] tegradc 15210000.nvdisplay: vblank syncpt # 12 for dc 1
[    0.688443] tegradc 15210000.nvdisplay: vpulse3 syncpt # 13 for dc 1
[    0.690211] tegra-pmc-iopower pmc-iopower: NO_IOPOWER setting 0x0
[    0.693263] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    0.696137] console [ttyS0] disabled
[    0.696192] 3100000.serial: ttyS0 at MMIO 0x3100000 (irq = 33, base_baud = 25500000) is a Tegra
[    0.699320] tegradc 15210000.nvdisplay: probed
[    1.143004] tegra-pcie 10003000.pcie-controller: link 0 down, retrying
[    1.547211] tegra-pcie 10003000.pcie-controller: link 0 down, retrying
[    1.951404] tegra-pcie 10003000.pcie-controller: link 0 down, retrying
[    1.953420] tegra-pcie 10003000.pcie-controller: link 0 down, ignoring
[    2.355603] tegra-pcie 10003000.pcie-controller: link 2 down, retrying
[    2.759801] tegra-pcie 10003000.pcie-controller: link 2 down, retrying
[    2.890047] console [ttyS0] enabled
[    2.890226] Console: switching to colour frame buffer device 80x30
[    2.891333] 3110000.serial: ttyTHS1 at MMIO 0x3110000 (irq = 34, base_baud = 0) is a TEGRA_UART
[    2.893788] serial-tegra 3130000.serial: RX in PIO mode
[    2.894371] 3130000.serial: ttyTHS3 at MMIO 0x3130000 (irq = 35, base_baud = 0) is a TEGRA_UART
[    2.902046] [drm] Initialized
[    2.918092] brd: module loaded
[    2.925880] loop: module loaded
[    2.925927] tegra_profiler: version: 1.145, samples/io: 49/28
[    2.928815] tegra_profiler: auth: init
[    2.932512] THERMAL EST: found 3 subdevs
[    2.932515] THERMAL EST num_resources: 0
[    2.932518] [THERMAL EST subdev 0]
[    2.932522] [THERMAL EST subdev 1]
[    2.932524] [THERMAL EST subdev 2]
[    2.932533] THERMAL EST: Found 2 profiles, default profile is quiet
[    2.932793] thermal thermal_zone5: Registering thermal zone thermal_zone5 for type thermal-fan-est
[    2.932794] THERMAL EST: thz register success.
[    2.932883] THERMAL EST: end of probe, return err: 0
[    2.933464] sd: No Scsi addr parsed to reserve index
[    2.933485] hisi_sas: driver version v1.6
[    2.937782] libphy: Fixed MDIO Bus: probed
[    2.938270] tun: Universal TUN/TAP device driver, 1.6
[    2.938272] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
[    2.938918] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[    2.938919] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    2.938954] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.4.0-k
[    2.938955] igb: Copyright (c) 2007-2014 Intel Corporation.
[    2.938986] igbvf: Intel(R) Gigabit Virtual Function Network Driver - version 2.4.0-k
[    2.938987] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[    2.939016] ixgbe: Intel(R) 10 Gigabit PCI Express Network Driver - version 4.4.0-k
[    2.939018] ixgbe: Copyright (c) 1999-2016 Intel Corporation.
[    3.060924] tegradc 15210000.nvdisplay: fb registered
[    3.073965] Unable to handle kernel read from unreadable memory at virtual address ffffffc0ef2e86d8
[    3.083034] Mem abort info:
[    3.085844]   ESR = 0x8600000e
[    3.088909]   Exception class = IABT (current EL), IL = 32 bits
[    3.094841]   SET = 0, FnV = 0
[    3.097916]   EA = 0, S1PTW = 0
[    3.101058] swapper pgtable: 4k pages, 39-bit VAs, pgd = ffffff800a380000
[    3.107848] [ffffffc0ef2e86d8] *pgd=00000001771f7003, *pud=00000001771f7003, *pmd=00e800016f200711
[    3.116855] Internal error: Oops: 8600000e [#1] PREEMPT SMP
[    3.122420] Modules linked in:
[    3.125486] CPU: 5 PID: 574 Comm: kworker/u12:3 Not tainted 4.9.253-tegra #1
[    3.132525] Hardware name: lanai-3636 (DT)
[    3.136628] Workqueue: events_unbound async_run_entry_fn
[    3.141944] task: ffffffc0efe58e00 task.stack: ffffffc0efa00000
[    3.147856] PC is at 0xffffffc0ef2e86d8
[    3.151691] LR is at clk_core_prepare+0x6c/0x1e0
[    3.156302] pc : [<ffffffc0ef2e86d8>] lr : [<ffffff8008806f5c>] pstate: 60400045
[    3.163687] sp : ffffffc0efa03880
[    3.166996] x29: ffffffc0efa03880 x28: ffffff800b710000 
[    3.172326] x27: ffffff800a0b67d0 x26: ffffffc0ef2e88c0 
[    3.177651] x25: 0000000000000001 x24: ffffffc0efa038d0 
[    3.182979] x23: ffffff800a0b6d68 x22: 0000000000000002 
[    3.188306] x21: ffffff800a0b6d38 x20: 0000000000000000 
[    3.193634] x19: ffffffc0ef2e86d8 x18: 00000000000089ea 
[    3.198962] x17: 0000000000000000 x16: 0000000000000001 
[    3.204288] x15: ffffffffffffffff x14: 08d7aaa000000006 
[    3.209614] x13: 0042000000000003 x12: 0000000000000058 
[    3.214939] x11: 000000000000000b x10: 0101010101010101 
[    3.220267] x9 : fffffffffffffffc x8 : 7f7f7f7f7f7f7f7f 
[    3.225595] x7 : fefefeff646c606d x6 : 00170401e9e1acf4 
[    3.230919] x5 : 742c616901041700 x4 : 8080808000000000 
[    3.236245] x3 : b34b234b0963a000 x2 : 0000000000000000 
[    3.241572] x1 : ffffffc0ef2e86d8 x0 : 0000000000000000 
[    3.246728] tegra-pcie 10003000.pcie-controller: link 2 down, retrying
[    3.248745] tegra-pcie 10003000.pcie-controller: link 2 down, ignoring
[    3.259930] 
[    3.261419] Process kworker/u12:3 (pid: 574, stack limit = 0xffffffc0efa00000)
[    3.268631] Call trace:
[    3.271075] [<ffffffc0ef2e86d8>] 0xffffffc0ef2e86d8
[    3.275946] [<ffffff8008809b14>] clk_prepare+0x2c/0x58
[    3.281081] [<ffffff80087ccd6c>] tegra_nvdisp_update_pd_ref_cnts.isra.10+0x2e4/0x388
[    3.288814] [<ffffff80087d62a4>] tegra_nvdisp_unpowergate_dc+0x34/0x60
[    3.295333] [<ffffff80087ed984>] tegra_nvdisp_head_enable+0x6c/0x14c0
[    3.301766] [<ffffff80087442b0>] _tegra_dc_enable+0xf0/0x110
[    3.307418] [<ffffff800874abc4>] tegra_dc_probe+0x107c/0x16b8
[    3.313159] [<ffffff8008902f48>] platform_drv_probe+0x60/0xc0
[    3.318898] [<ffffff8008900778>] driver_probe_device+0x298/0x448
[    3.324897] [<ffffff8008900a04>] __driver_attach+0xdc/0x128
[    3.330462] [<ffffff80088fe034>] bus_for_each_dev+0x5c/0xa8
[    3.336028] [<ffffff80088ffdb8>] driver_attach+0x30/0x40
[    3.341333] [<ffffff80088fe5f0>] driver_attach_async+0x20/0x60
[    3.347159] [<ffffff800825ee38>] async_run_entry_fn+0x48/0x158
[    3.352986] [<ffffff80082540ac>] process_one_work+0x1e4/0x4b0
[    3.358724] [<ffffff80082543c8>] worker_thread+0x50/0x4c8
[    3.364117] [<ffffff800825b09c>] kthread+0xec/0xf0
[    3.368903] [<ffffff80082038a0>] ret_from_fork+0x10/0x30
[    3.374210] ---[ end trace 225026074f011e49 ]---
[    3.382803] Unable to handle kernel paging request at virtual address ffffffffffffffd8
[    3.382876] eqos 2490000.ether_qos: can't get pllrefe_vcoout clk (-2)
[    3.397141] Mem abort info:
[    3.399929]   ESR = 0x96000005
[    3.402978]   Exception class = DABT (current EL), IL = 32 bits
[    3.408888]   SET = 0, FnV = 0
[    3.411937]   EA = 0, S1PTW = 0
[    3.415073] Data abort info:
[    3.417949]   ISV = 0, ISS = 0x00000005
[    3.421779]   CM = 0, WnR = 0
[    3.424742] swapper pgtable: 4k pages, 39-bit VAs, pgd = ffffff800a380000
[    3.431521] [ffffffffffffffd8] *pgd=0000000000000000, *pud=0000000000000000
[    3.438498] Internal error: Oops: 96000005 [#2] PREEMPT SMP
[    3.444061] Modules linked in:
[    3.447123] CPU: 5 PID: 574 Comm: kworker/u12:3 Tainted: G      D         4.9.253-tegra #1
[    3.455375] Hardware name: lanai-3636 (DT)
[    3.459473] task: ffffffc0efe58e00 task.stack: ffffffc0efa00000
[    3.465385] PC is at kthread_data+0x24/0x30
[    3.469564] LR is at wq_worker_sleeping+0x20/0xd0
[    3.474262] pc : [<ffffff800825bc94>] lr : [<ffffff8008255530>] pstate: 804000c5
[    3.481647] sp : ffffffc0efa034b0
[    3.484956] x29: ffffffc0efa034b0 x28: ffffffc0efe58e00 
[    3.490284] x27: ffffffc0f1310000 x26: 0000000000000000 
[    3.495610] x25: ffffff800826af14 x24: ffffffc0f6717d80 
[    3.500938] x23: ffffffc0efe594b0 x22: ffffff80099b6000 
[    3.506265] x21: ffffff800a008000 x20: ffffff80099c2000 
[    3.511592] x19: ffffffc0efe58e00 x18: 00000000ffffffe7 
[    3.516919] x17: 0000000000000000 x16: ffffffbf03c18000 
[    3.522244] x15: 0000000000000007 x14: 0000000000000001 
[    3.527571] x13: 0000000000000019 x12: 0000000000000033 
[    3.532897] x11: 000000000000004c x10: 000000000000000a 
[    3.538225] x9 : 0000000000000000 x8 : 00000000021aa4f2 
[    3.543552] x7 : 0000000000000000 x6 : 00000000000002f0 
[    3.548877] x5 : 0000000000001780 x4 : 00000000021a816f 
[    3.554202] x3 : 0000000000000000 x2 : 00000000ada17847 
[    3.559528] x1 : ffffffc0f6717d80 x0 : 0000000000000000 
[    3.564853] 
[    3.566343] Process kworker/u12:3 (pid: 574, stack limit = 0xffffffc0efa00000)
[    3.573553] Call trace:
[    3.575998] [<ffffff800825bc94>] kthread_data+0x24/0x30
[    3.581218] [<ffffff80090e85d0>] __schedule+0x3e0/0x7d0
[    3.586437] [<ffffff800826af14>] do_task_dead+0x74/0x78
[    3.591656] [<ffffff8008238838>] do_exit+0x710/0xa88
[    3.596615] [<ffffff800820c1a4>] die+0x194/0x198
[    3.601229] [<ffffff800822206c>] __do_kernel_fault+0x144/0x218
[    3.607054] [<ffffff8008222278>] do_page_fault+0x60/0x480
[    3.612446] [<ffffff8008200954>] do_mem_abort+0x54/0xb0
[    3.617664] [<ffffff8008202904>] el1_da+0x24/0xbc
[    3.622362] [<ffffff8008809b14>] clk_prepare+0x2c/0x58
[    3.627495] [<ffffff80087ccd6c>] tegra_nvdisp_update_pd_ref_cnts.isra.10+0x2e4/0x388
[    3.635229] [<ffffff80087d62a4>] tegra_nvdisp_unpowergate_dc+0x34/0x60
[    3.641747] [<ffffff80087ed984>] tegra_nvdisp_head_enable+0x6c/0x14c0
[    3.648179] [<ffffff80087442b0>] _tegra_dc_enable+0xf0/0x110
[    3.653831] [<ffffff800874abc4>] tegra_dc_probe+0x107c/0x16b8
[    3.659571] [<ffffff8008902f48>] platform_drv_probe+0x60/0xc0
[    3.665310] [<ffffff8008900778>] driver_probe_device+0x298/0x448
[    3.671308] [<ffffff8008900a04>] __driver_attach+0xdc/0x128
[    3.676873] [<ffffff80088fe034>] bus_for_each_dev+0x5c/0xa8
[    3.682438] [<ffffff80088ffdb8>] driver_attach+0x30/0x40
[    3.687743] [<ffffff80088fe5f0>] driver_attach_async+0x20/0x60
[    3.693568] [<ffffff800825ee38>] async_run_entry_fn+0x48/0x158
[    3.699393] [<ffffff80082540ac>] process_one_work+0x1e4/0x4b0
[    3.705132] [<ffffff80082543c8>] worker_thread+0x50/0x4c8
[    3.710523] [<ffffff800825b09c>] kthread+0xec/0xf0
[    3.715308] [<ffffff80082038a0>] ret_from_fork+0x10/0x30
[    3.720612] ---[ end trace 225026074f011e4a ]---
[    3.729580] note: kworker/u12:3[574] exited with preempt_count 2
[    3.735578] Fixing recursive fault but reboot is needed!

Please do no chagne fb-win. It is not need to configure it.

Also, win-mask needs to be assigned to different display head. Each display head requires at least one window so that it can render things.

If you have two display in use here, you can set one win-mask to 0x38 while another one to 0x7.

These two are not some magic numbers. You can just use translate 0x38 and 0x7 to binary and you will see one is 111000 while another one is 000111. Which means we assign 3 windows to each display head.

1 Like

Oh, thanks for the explanation, makes sense. So I set this to DTS and I have kernel crash:

nvdisplay@15200000 {	// DSI
			status = "okay";
			nvidia,dc-or-node = "/host1x/dsi";
			nvidia,dc-connector = <&dsi>;
			nvidia,fb-win = <0>;
			win-mask = <0x38>;
		};
		nvdisplay@15210000 {	// DisplayPort
			status = "okay";
			nvidia,dc-or-node = "/host1x/sor";
			nvidia,dc-connector = <&sor0>;
			nvidia,fb-win = <1>;
			win-mask = <0x7>;
		};
[    0.741499] tegradccommon 15200000.dc_common: host1x channel mapped
[    0.741518] tegradccommon 15200000.dc_common: dc_common syncpt # 1 allocated
[    0.741553] tegradccommon 15200000.dc_common: dma mapping done
[    0.742365] tegradc 15200000.nvdisplay: disp0 connected to head0->/host1x/dsi
[    0.742671] tegradc 15200000.nvdisplay: No hpd-gpio in DT
[    0.742720] tegradc 15200000.nvdisplay: DT parsed successfully
[    0.742750] tegradc 15200000.nvdisplay: Display dc.ffffff800b3e0000 registered with id=0
[    0.748451] tegra_nvdisp_bandwidth_register_max_config: max config iso bw = 16727000 KB/s
[    0.748474] tegra_nvdisp_bandwidth_register_max_config: max config EMC floor = 665600000 Hz
[    0.748491] tegra_nvdisp_bandwidth_register_max_config: max config hubclk = 357620000 Hz
[    0.748676] tegradc 15200000.nvdisplay: vblank syncpt # 8 for dc 0
[    0.748692] tegradc 15200000.nvdisplay: vpulse3 syncpt # 9 for dc 0
[    0.752978] tegradc 15200000.nvdisplay: probed
[    0.753000] tegradc 15200000.nvdisplay: dc does not have a window at index 0
[    0.753015] tegradc 15200000.nvdisplay: failed to register fb
[    0.753931] tegradc: probe of 15200000.nvdisplay failed with error -22
[    0.754277] tegradc 15210000.nvdisplay: disp0 connected to head1->/host1x/sor
[    0.754406] tegradc 15210000.nvdisplay: DT parsed successfully
[    0.754438] tegradc 15210000.nvdisplay: Display dc.ffffff800b710000 registered with id=0
[    0.754533] tegra-adma 2930000.adma: Tegra210 ADMA driver registered 32 channels
[    0.754758] tegradc 15210000.nvdisplay: vblank syncpt # 12 for dc 1
[    0.754779] tegradc 15210000.nvdisplay: vpulse3 syncpt # 13 for dc 1
[    0.756202] tegra-fuse-burn 3820000.efuse:efuse-burn: shutdown limit check disabled
[    0.756266] tegra-fuse-burn 3820000.efuse:efuse-burn: Fuse burn driver initialized
[    0.756742] kfuse 3830000.kfuse: initialized
[    0.758200] tegra-pmc-iopower pmc-iopower: NO_IOPOWER setting 0x0
[    0.760918] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    0.763045] console [ttyS0] disabled
[    0.763091] 3100000.serial: ttyS0 at MMIO 0x3100000 (irq = 33, base_baud = 25500000) is a Tegra
[    0.766103] tegradc 15210000.nvdisplay: probed
[    1.143479] tegra-pcie 10003000.pcie-controller: link 0 down, retrying
[    1.547737] tegra-pcie 10003000.pcie-controller: link 0 down, retrying
[    1.951985] tegra-pcie 10003000.pcie-controller: link 0 down, retrying
[    1.954003] tegra-pcie 10003000.pcie-controller: link 0 down, ignoring
[    2.356230] tegra-pcie 10003000.pcie-controller: link 2 down, retrying
[    2.760472] tegra-pcie 10003000.pcie-controller: link 2 down, retrying
[    2.956755] console [ttyS0] enabled
[    2.956943] Console: switching to colour frame buffer device 80x30
[    2.966700] tegradc 15210000.nvdisplay: fb registered
[    2.972608] 3110000.serial: ttyTHS1 at MMIO 0x3110000 (irq = 34, base_baud = 0) is a TEGRA_UART
[    2.979854] Unable to handle kernel paging request at virtual address 70736964766e2e
[    2.979855] Mem abort info:
[    2.979857]   ESR = 0x96000004
[    2.979859]   Exception class = DABT (current EL), IL = 32 bits
[    2.979861]   SET = 0, FnV = 0
[    2.979863]   EA = 0, S1PTW = 0
[    2.979864] Data abort info:
[    2.979865]   ISV = 0, ISS = 0x00000004
[    2.979867]   CM = 0, WnR = 0
[    2.979869] [0070736964766e2e] address between user and kernel address ranges
[    2.979872] Internal error: Oops: 96000004 [#1] PREEMPT SMP
[    2.979876] Modules linked in:
[    2.979880] CPU: 0 PID: 6 Comm: kworker/u12:0 Not tainted 4.9.253-tegra #1
[    2.979882] Hardware name: lanai-3636 (DT)
[    2.979896] Workqueue: events_unbound async_run_entry_fn
[    2.979898] task: ffffffc0f1314600 task.stack: ffffffc0f1348000
[    2.979905] PC is at clk_core_prepare+0x5c/0x1e0
[    2.979908] LR is at clk_core_prepare+0x4c/0x1e0
[    2.979911] pc : [<ffffff8008806f4c>] lr : [<ffffff8008806f3c>] pstate: 60400045
[    2.979913] sp : ffffffc0f134b880
[    2.979917] x29: ffffffc0f134b880 x28: ffffff800b710000 
[    2.979921] x27: ffffff800a0b67d0 x26: ffffffc0eec05a80 
[    2.979924] x25: 0000000000000001 x24: ffffffc0f134b8d0 
[    2.979927] x23: ffffff800a0b6d68 x22: 0000000000000002 
[    2.979930] x21: ffffff800a0b6d08 x20: 0000000000000000 
[    2.979933] x19: ffffffc0eec05ac0 x18: 0000000000000010 
[    2.979936] x17: 0000000000000000 x16: 0000000000000001 
[    2.979939] x15: ffffffffffffffff x14: 08d7aaa000000006 
[    2.979942] x13: 0042000000000003 x12: 0000000000000058 
[    2.979946] x11: 000000000000000b x10: 0101010101010101 
[    2.979949] x9 : fffffffffffffffc x8 : 7f7f7f7f7f7f7f7f 
[    2.979952] x7 : fefefeff646c606d x6 : 00170401e9e1acf4 
[    2.979955] x5 : 742c616901041700 x4 : 8080808000000000 
[    2.979958] x3 : b34b234b0963a000 x2 : 0000000000000000 
[    2.979961] x1 : ffffffc0f1314600 x0 : 6c70736964766e2e 
[    2.979962] 
[    2.979965] Process kworker/u12:0 (pid: 6, stack limit = 0xffffffc0f1348000)
[    2.979966] Call trace:
[    2.979971] [<ffffff8008806f4c>] clk_core_prepare+0x5c/0x1e0
[    2.979974] [<ffffff8008809b14>] clk_prepare+0x2c/0x58
[    2.979980] [<ffffff80087ccd6c>] tegra_nvdisp_update_pd_ref_cnts.isra.10+0x2e4/0x388
[    2.979984] [<ffffff80087d62a4>] tegra_nvdisp_unpowergate_dc+0x34/0x60
[    2.979987] [<ffffff80087ed984>] tegra_nvdisp_head_enable+0x6c/0x14c0
[    2.979992] [<ffffff80087442b0>] _tegra_dc_enable+0xf0/0x110
[    2.979995] [<ffffff800874abc4>] tegra_dc_probe+0x107c/0x16b8
[    2.980000] [<ffffff8008902f48>] platform_drv_probe+0x60/0xc0
[    2.980003] [<ffffff8008900778>] driver_probe_device+0x298/0x448
[    2.980006] [<ffffff8008900a04>] __driver_attach+0xdc/0x128
[    2.980010] [<ffffff80088fe034>] bus_for_each_dev+0x5c/0xa8
[    2.980013] [<ffffff80088ffdb8>] driver_attach+0x30/0x40
[    2.980015] [<ffffff80088fe5f0>] driver_attach_async+0x20/0x60
[    2.980019] [<ffffff800825ee38>] async_run_entry_fn+0x48/0x158
[    2.980022] [<ffffff80082540ac>] process_one_work+0x1e4/0x4b0
[    2.980025] [<ffffff80082543c8>] worker_thread+0x50/0x4c8
[    2.980028] [<ffffff800825b09c>] kthread+0xec/0xf0
[    2.980032] [<ffffff80082038a0>] ret_from_fork+0x10/0x30
[    2.980037] ---[ end trace 7ffd8d42bf7d9d46 ]---
[    2.983732] Unable to handle kernel paging request at virtual address ffffffffffffffd8
[    2.983733] Mem abort info:
[    2.983734]   ESR = 0x96000005
[    2.983736]   Exception class = DABT (current EL), IL = 32 bits
[    2.983738]   SET = 0, FnV = 0
[    2.983740]   EA = 0, S1PTW = 0
[    2.983741] Data abort info:
[    2.983742]   ISV = 0, ISS = 0x00000005
[    2.983744]   CM = 0, WnR = 0
[    2.983746] swapper pgtable: 4k pages, 39-bit VAs, pgd = ffffff800a380000
[    2.983751] [ffffffffffffffd8] *pgd=0000000000000000, *pud=0000000000000000
[    2.983753] Internal error: Oops: 96000005 [#2] PREEMPT SMP
[    2.983756] Modules linked in:
[    2.983760] CPU: 0 PID: 6 Comm: kworker/u12:0 Tainted: G      D         4.9.253-tegra #1
[    2.983761] Hardware name: lanai-3636 (DT)
[    2.983771] task: ffffffc0f1314600 task.stack: ffffffc0f1348000
[    2.983775] PC is at kthread_data+0x24/0x30
[    2.983779] LR is at wq_worker_sleeping+0x20/0xd0
[    2.983781] pc : [<ffffff800825bc94>] lr : [<ffffff8008255530>] pstate: 804000c5
[    2.983782] sp : ffffffc0f134b4b0
[    2.983786] x29: ffffffc0f134b4b0 x28: ffffffc0f1314600 
[    2.983789] x27: ffffffc0f1310000 x26: 0000000000000000 
[    2.983792] x25: ffffff800826af14 x24: ffffffc0f669fd80 
[    2.983796] x23: ffffffc0f1314cb0 x22: ffffff80099b6000 
[    2.983799] x21: ffffff800a008000 x20: ffffff80099c2000 
[    2.983802] x19: ffffffc0f1314600 x18: 00000000fffffffe 
[    2.983804] x17: 0000000000000000 x16: ffffffbf03c07c00 
[    2.983807] x15: 0000000000000007 x14: 0000000000000001 
[    2.983810] x13: 0000000000000019 x12: 0000000000000033 
[    2.983813] x11: 000000000000004c x10: 000000000000000f 
[    2.983816] x9 : 0000000000000000 x8 : 0000000000d34c3a 
[    2.983819] x7 : 0000000000000000 x6 : 00000000000002f0 
[    2.983822] x5 : 0000000000002c10 x4 : 0000000000d3202a 
[    2.983825] x3 : 0000000000000000 x2 : 000000007ee3a96b 
[    2.983828] x1 : ffffffc0f669fd80 x0 : 0000000000000000 
[    2.983829] 
[    2.983831] Process kworker/u12:0 (pid: 6, stack limit = 0xffffffc0f1348000)
[    2.983832] Call trace:
[    2.983836] [<ffffff800825bc94>] kthread_data+0x24/0x30
[    2.983841] [<ffffff80090e85d0>] __schedule+0x3e0/0x7d0
[    2.983845] [<ffffff800826af14>] do_task_dead+0x74/0x78
[    2.983849] [<ffffff8008238838>] do_exit+0x710/0xa88
[    2.983853] [<ffffff800820c1a4>] die+0x194/0x198
[    2.983858] [<ffffff800822206c>] __do_kernel_fault+0x144/0x218
[    2.983861] [<ffffff8008222184>] do_bad_area+0x44/0x90
[    2.983864] [<ffffff80082226ec>] do_translation_fault+0x54/0x80
[    2.983866] [<ffffff8008200954>] do_mem_abort+0x54/0xb0
[    2.983868] [<ffffff8008202904>] el1_da+0x24/0xbc
[    2.983871] [<ffffff8008809b14>] clk_prepare+0x2c/0x58
[    2.983875] [<ffffff80087ccd6c>] tegra_nvdisp_update_pd_ref_cnts.isra.10+0x2e4/0x388
[    2.983879] [<ffffff80087d62a4>] tegra_nvdisp_unpowergate_dc+0x34/0x60
[    2.983882] [<ffffff80087ed984>] tegra_nvdisp_head_enable+0x6c/0x14c0
[    2.983884] [<ffffff80087442b0>] _tegra_dc_enable+0xf0/0x110
[    2.983887] [<ffffff800874abc4>] tegra_dc_probe+0x107c/0x16b8
[    2.983891] [<ffffff8008902f48>] platform_drv_probe+0x60/0xc0
[    2.983894] [<ffffff8008900778>] driver_probe_device+0x298/0x448
[    2.983897] [<ffffff8008900a04>] __driver_attach+0xdc/0x128
[    2.983899] [<ffffff80088fe034>] bus_for_each_dev+0x5c/0xa8
[    2.983902] [<ffffff80088ffdb8>] driver_attach+0x30/0x40
[    2.983905] [<ffffff80088fe5f0>] driver_attach_async+0x20/0x60
[    2.983908] [<ffffff800825ee38>] async_run_entry_fn+0x48/0x158
[    2.983911] [<ffffff80082540ac>] process_one_work+0x1e4/0x4b0
[    2.983914] [<ffffff80082543c8>] worker_thread+0x50/0x4c8
[    2.983916] [<ffffff800825b09c>] kthread+0xec/0xf0
[    2.983918] [<ffffff80082038a0>] ret_from_fork+0x10/0x30
[    2.983921] ---[ end trace 7ffd8d42bf7d9d47 ]---
[    2.988089] note: kworker/u12:0[6] exited with preempt_count 2
[    2.988091] Fixing recursive fault but reboot is needed!
[    3.626105] serial-tegra 3130000.serial: RX in PIO mode

Can you trace the code and see what is exactly happened here? Looks like your setting is still wrong.

Okay, so I changed DTS fb-win for second nvdisplay (15210000) to 3 (so 0, 1, 2 is for first and 3, 4, 5 would be for the second display). Now I can boot without problems but none of the displays work. If I disable my panel, then Displayport works well.

It seems that it can’t register fb at all for both displays

[    0.714268] tegradc 15200000.nvdisplay: disp0 connected to head0->/host1x/dsi
[    0.714580] tegradc 15200000.nvdisplay: No hpd-gpio in DT
[    0.714634] tegradc 15200000.nvdisplay: DT parsed successfully
[    0.714667] tegradc 15200000.nvdisplay: Display dc.ffffff800b3e0000 registered with id=0
[    0.720174] tegra_nvdisp_bandwidth_register_max_config: max config iso bw = 16727000 KB/s
[    0.720197] tegra_nvdisp_bandwidth_register_max_config: max config EMC floor = 665600000 Hz
[    0.720216] tegra_nvdisp_bandwidth_register_max_config: max config hubclk = 357620000 Hz
[    0.720397] tegradc 15200000.nvdisplay: vblank syncpt # 8 for dc 0
[    0.720413] tegradc 15200000.nvdisplay: vpulse3 syncpt # 9 for dc 0
[    0.724720] tegradc 15200000.nvdisplay: probed
[    0.724741] tegradc 15200000.nvdisplay: dc does not have a window at index 0
[    0.724756] tegradc 15200000.nvdisplay: failed to register fb
[    0.725659] tegradc: probe of 15200000.nvdisplay failed with error -22
[    0.725993] tegradc 15210000.nvdisplay: disp0 connected to head1->/host1x/sor
[    0.726122] tegradc 15210000.nvdisplay: DT parsed successfully
[    0.726152] tegradc 15210000.nvdisplay: Display dc.ffffff800b710000 registered with id=0
[    0.726363] tegradc 15210000.nvdisplay: vblank syncpt # 12 for dc 1
[    0.726381] tegradc 15210000.nvdisplay: vpulse3 syncpt # 13 for dc 1
[    0.726424] tegra-adma 2930000.adma: Tegra210 ADMA driver registered 32 channels
[    0.727437] tegra-fuse-burn 3820000.efuse:efuse-burn: shutdown limit check disabled
[    0.727490] tegra-fuse-burn 3820000.efuse:efuse-burn: Fuse burn driver initialized
[    0.728176] kfuse 3830000.kfuse: initialized
[    0.729693] tegra-pmc-iopower pmc-iopower: NO_IOPOWER setting 0x0
[    0.736168] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    0.737702] tegradc 15210000.nvdisplay: probed
[    0.737723] tegradc 15210000.nvdisplay: dc does not have a window at index 3
[    0.737737] tegradc 15210000.nvdisplay: failed to register fb

By the way, if I keep the default values for fb-win and win-mask, which should be the correct values, it freezes on boot, when my panel is enabled. Are there any panel DTSI settings that could cause it? I’m really frustrated with this

What kind of error did you see if you use the default setting?

It seems you even make the second one get failed.

[ 0.737723] tegradc 15210000.nvdisplay: dc does not have a window at index 3
[ 0.737737] tegradc 15210000.nvdisplay: failed to register fb

Honestly, I don’t know more than you. Even if you said there are some error, what I am doing is same as you. Read the same driver code and see why it gets kernel panic.

Please directly goes to kernel/nvidia/drivers/video/tegra/dc/dc.c and check what is exactly happened in tegra_dc_get_window.

1 Like

So I found the issue. The issue that was causing the freezes was my dsi-init-cmd. I have no idea why does it init so early at boot.

The commands I received from the display manufacturer were like this:

GP_COMMAD_PA(4);W_D(0xFF);W_D(0x80);W_D(0x19);W_D(0x01);
GP_COMMAD_PA(2);W_D(0x00);W_D(0x80);
GP_COMMAD_PA(3);W_D(0xFF);W_D(0x80);W_D(0x19);
GP_COMMAD_PA(2);W_D(0x00);W_D(0x8A);
GP_COMMAD_PA(2);W_D(0xC4);W_D(0x40);
GP_COMMAD_PA(2);W_D(0x00);W_D(0xA6);
GP_COMMAD_PA(3);W_D(0xB3);W_D(0x20);W_D(0x01);
GP_COMMAD_PA(2);W_D(0x00);W_D(0x90);
GP_COMMAD_PA(7);W_D(0xC0);W_D(0x00);W_D(0x15);W_D(0x00);W_D(0x00);W_D(0x00);W_D(0x03);

Then I converted them just like this:

<TEGRA_DSI_PACKET_CMD DSI_GENERIC_LONG_WRITE 0xFF 0x80 0x19 0x01>

I guess you need to “translate” to Tegra DSI commands differently?