DTB works on a02 carrier board but not b01

We have only one camera, so deleted dual-camera config from dts file:

  1. tegra210-porg-p3448-common.dtsi
    remove the line
    #include “porg-platforms/tegra210-porg-camera-rbpcv2-dual-imx219.dtsi”

2.tegra210-porg-plugin-manager.dtsi
remove from override@4 to override@31 in fragment@10
remove override@16 in fragment@9

Build it and copy
tegra210-p3448-0000-p3449-0000-a02.dtb
tegra210-p3448-0000-p3449-0000-b00.dtb
to target /boot directory

Set extlinux.conf
FDT /boot/tegra210-p3448-0000-p3449-0000-a02.dtb

Then it works on a02 carrier board.

Set extlinux.conf
FDT /boot/tegra210-p3448-0000-p3449-0000-b00.dtb

Then put sdcard in b01 module & carrier board, Linux crashed.

Below is the log message

Starting kernel …
[ 1.082893] tegradc tegradc.1: dpd enable lookup fail:-19
[ 1.370809] Unable to handle kernel read from unreadable memory at virtual address 000001d8
[ 1.379223] Mem abort info:
[ 1.382065] ESR = 0x96000005
[ 1.385147] Exception class = DABT (current EL), IL = 32 bits
[ 1.391100] SET = 0, FnV = 0
[ 1.394166] EA = 0, S1PTW = 0
[ 1.397328] Data abort info:
[ 1.400239] ISV = 0, ISS = 0x00000005
[ 1.404123] CM = 0, WnR = 0
[ 1.407110] [00000000000001d8] user address but active_mm is swapper
[ 1.413499] Internal error: Oops: 96000005 [#1] PREEMPT SMP
[ 1.419093] Modules linked in:
[ 1.422170] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 4.9.140-tegra #10
[ 1.425019] tegra-pcie 1003000.pcie: link 0 down, retrying
[ 1.434312] Hardware name: NVIDIA Jetson Nano Developer Kit (DT)
[ 1.440340] task: ffffffc0fa6f0000 task.stack: ffffffc0fa66c000
[ 1.442959] usb 1-2: new high-speed USB device number 2 using tegra-xusb
[ 1.453009] PC is at tegra_channel_populate_dev_info+0xac/0x190
[ 1.458953] LR is at tegra_channel_populate_dev_info+0x9c/0x190
[ 1.464894] pc : [] lr : [] pstate: 40400045
[ 1.472315] usb 1-2: New USB device found, idVendor=0bda, idProduct=5411
[ 1.472318] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1.472322] usb 1-2: Product: 4-Port USB 2.1 Hub
[ 1.472325] usb 1-2: Manufacturer: Generic
[ 1.473299] hub 1-2:1.0: USB hub found
[ 1.473870] hub 1-2:1.0: 4 ports detected
[ 1.477888] mmc0: hw tuning done …
[ 1.477924] mmc0: new ultra high speed SDR104 SDXC card at address e624
[ 1.478200] mmcblk0: mmc0:e624 SC64G 59.5 GiB
[ 1.484168] mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14
[ 1.523774] sp : ffffffc0fa66f850
[ 1.527100] x29: ffffffc0fa66f850 x28: ffffff8009804bd8
[ 1.532453] x27: ffffff8009648f80 x26: 0000000000000001
[ 1.537805] x25: 00000000009a2065 x24: ffffffc0f4c82038
[ 1.543155] x23: 000000000000000b x22: ffffffc0f974f1e8
[ 1.548503] x21: ffffffc0f974f018 x20: ffffffc0fa66f8f8
[ 1.553853] x19: ffffffc0f94c9c10 x18: 0000000000000001
[ 1.559203] x17: 0000000000000003 x16: 0000000000000000
[ 1.564552] x15: ffffffffffffffff x14: ffffffc0fa66f850
[ 1.569903] x13: ffffffc0fa66f755 x12: ffffffffffffffff
[ 1.575252] x11: ffffffc0fa66f710 x10: ffffffc0fa66f710
[ 1.580603] x9 : 0000000000000002 x8 : 0000000000000002
[ 1.585952] x7 : ffffff8008fc6e88 x6 : 0000000000000090
[ 1.591302] x5 : 000000000000008d x4 : 0000000000000001
[ 1.596652] x3 : 0000000000000000 [ 1.598980] tegra-xusb-padctl 7009f000.xusb_padctl: power down UTMI pad 1
[ 1.606698] x2 : 0000000000000000 x1 : 0000000000000000 x0 : 0000000000000000
[ 1.613982]
[ 1.615477] Process swapper/0 (pid: 1, stack limit = 0xffffffc0fa66c000)
[ 1.618968] usb 1-2: usb_suspend_both: status 0
[ 1.619022] usb usb1: usb_suspend_both: status 0
[ 1.631375] Call trace:
[ 1.633832] [] tegra_channel_populate_dev_info+0xac/0x190
[ 1.640822] [] tegra_channel_init_subdevices+0x2e8/0x790
[ 1.647724] [] tegra_vi_graph_notify_complete+0x2e8/0x6e0
[ 1.654713] [] v4l2_async_test_notify+0x104/0x120
[ 1.661005] [] v4l2_async_notifier_register+0x128/0x198
[ 1.667818] [] tegra_vi_graph_init+0x234/0x288
[ 1.673847] [] tegra_vi_media_controller_init+0x1d0/0x208
[ 1.680837] [] vi_probe+0x378/0x520
[ 1.685909] [] platform_drv_probe+0x60/0xc0
[ 1.691678] [] driver_probe_device+0xd8/0x408
[ 1.699186] [] __driver_attach+0xdc/0x128
[ 1.706389] [] bus_for_each_dev+0x5c/0xa8
[ 1.711003] tegra-xusb-padctl 7009f000.xusb_padctl: power on UTMI pads 1
[ 1.721989] [] driver_attach+0x30/0x40
[ 1.729009] [] bus_add_driver+0x20c/0x2a8
[ 1.736281] [] driver_register+0x6c/0x110
[ 1.743528] [] __platform_driver_register+0x5c/0x68
[ 1.751631] [] vi_init+0x2c/0x38
[ 1.758092] [] do_one_initcall+0x44/0x130
[ 1.765328] [] kernel_init_freeable+0x1a0/0x244
[ 1.773087] [] kernel_init+0x18/0x108
[ 1.779976] [] ret_from_fork+0x10/0x30
[ 1.786958] —[ end trace e6799373f35468e5 ]—
[ 1.798738] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[ 1.798738]
[ 1.811196] SMP: stopping secondary CPUs
[ 1.816809] Kernel Offset: disabled
[ 1.821927] Memory Limit: none
[ 1.831988] Rebooting in 5 seconds…

Actually, there is few differents between a02 and b00 version:

5c5
< compatible = “nvidia,p3449-0000-a02+p3448-0000-a02”, “nvidia,jetson-nano”, “nvidia,tegra210”;
compatible = “nvidia,p3449-0000-b00+p3448-0000-b00”, “nvidia,jetson-nano”, “nvidia,tegra210”;
15c15
< nvidia,dtsfilename = “…/arch/arm64/boot/dts/…/…/…/…/…/…/hardware/nvidia/platform/t210/porg/kernel-dts/tegra210-p3448-0000-p3449-0000-a02.dts”;
nvidia,dtsfilename = “…/arch/arm64/boot/dts/…/…/…/…/…/…/hardware/nvidia/platform/t210/porg/kernel-dts/tegra210-p3448-0000-p3449-0000-b00.dts”;

Thanks!

Hi,

If I were you, I will firstly check

  1. Whether original b00 dts can work on this board.
  2. Which modification would cause this issue.

I guess this one is the cause. Why do you do such modification?

remove from override@4 to override@31 in fragment@10

1.Whether original b00 dts can work on this board.
–> Original b00 dts works fines on this board.

  1. Which modification would cause this issue.
    –>2 dts files been modified like my post descript.

Why do you do such modification?
–>We have only one camera, so deleted dual-camera config from dts file.

We make the change on a02 board first , and it works.
Now we want to switch to b01 version, It fail.

Thand you!!

What’s if remove whole fragement@10 context?
No idea/clue for this issue currently.

Same issue on b01 board,
But it works on a02 board, even using b00 dtb.(The a02 & b00 DTBs are same basically)

Could you attached your dtb file here to try.

tegra210-p3448-0000-p3449-0000-a02.dtb.log (196.9 KB) tegra210-p3448-0000-p3449-0000-b00.dtb.log (196.9 KB)

Thanks!

@felixch
Could you apply and update the dtb file from sdcard partition instead of rootfs.

  1. Remove the dtb context from the extlinux.conf
  2. replace the dtb in …/Linux_for_tegra/kernel/dtb/
  3. update the dtb by sudo ./flash -r -k DTB xxxx mmcblk0p1

Same issue on it.

Thanks