BOOT issue on Nano SOM based custom carrier

Hello,

I am trying to bringup a Nano SOM based custom carrier board.
I have followed “https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/adaptation_and_bringup_nano.html”.

We are using NANO- PRODUCTION- SOM module for our carrier board.
So far, we have ported u-boot successfully. But got issues in kernel with kernel-panic mesage as below.

U-Boot 2016.07-gabe325a3e7-dirty (Aug 27 2020 - 18:14:03 +0530)

TEGRA210
Model: CUSTOM-DEV
Board: CUSTOM-DEV
DRAM: 4 GiB
MMC: Tegra SD/MMC: 0, Tegra SD/MMC: 1
SF: Unsupported flash IDs: manuf 00, jedec 0000, ext_jedec 0000
*** Warning - spi_flash_probe() failed, using default environment

In: serial
Out: serial
Err: serial
Can’t find nvidia,ethernet-mac property in CBoot DTB
Net: No ethernet found.
MMC: no card present
** Bad device mmc 1 **
Hit any key to stop autoboot: 0
MMC: no card present
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:1…
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
733 bytes read in 99 ms (6.8 KiB/s)
1: primary kernel
Retrieving file: /boot/initrd
5487746 bytes read in 195 ms (26.8 MiB/s)
Retrieving file: /boot/Image
34267144 bytes read in 808 ms (40.4 MiB/s)
append: tegraid=21.1.2.0.0 ddr_die=4096M@2048M section=512M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 console=ttyS0,1152t

Flattened Device Tree blob at 83100000

Booting using the fdt blob at 0x83100000
reserving fdt memory region: addr=80000000 size=20000
Using Device Tree in place at 0000000083100000, end 00000000831776d6

Starting kernel …

[ 1.356253] Unable to handle kernel read from unreadable memory at virtual address 000001d8
[ 1.364639] Mem abort info:
[ 1.367446] ESR = 0x96000005
[ 1.370542] Exception class = DABT (current EL), IL = 32 bits
[ 1.376460] SET = 0, FnV = 0
[ 1.379518] EA = 0, S1PTW = 0
[ 1.382659] Data abort info:
[ 1.385532] ISV = 0, ISS = 0x00000005
[ 1.389390] CM = 0, WnR = 0
[ 1.392359] [00000000000001d8] user address but active_mm is swapper
[ 1.398714] Internal error: Oops: 96000005 [#1] PREEMPT SMP
[ 1.404275] Modules linked in:
[ 1.407332] CPU: 3 PID: 1 Comm: swapper/0 Not tainted 4.9.140-tegra #7
[ 1.413847] Hardware name: CUSTOM-DEV board (DT)
[ 1.418714] task: ffffffc0fa6f0000 task.stack: ffffffc0fa66c000
[ 1.424628] PC is at tegra_channel_populate_dev_info+0xac/0x190
[ 1.430538] LR is at tegra_channel_populate_dev_info+0x9c/0x190
[ 1.436446] pc : [] lr : [] pstate: 40400045
[ 1.443827] sp : ffffffc0fa66f850
[ 1.447134] x29: ffffffc0fa66f850 x28: ffffff8009814e88
[ 1.452452] x27: ffffff8009658ff8 x26: 0000000000000001
[ 1.457769] x25: 00000000009a2065 x24: ffffffc0f7b4a038
[ 1.463087] x23: 000000000000000b x22: ffffffc0f9b751e8
[ 1.468406] x21: ffffffc0f9b75018 x20: ffffffc0fa66f8f8
[ 1.473724] x19: ffffffc0f9519810 x18: 0000000000000001
[ 1.479042] x17: 0000000000000005 x16: 0000000000000000
[ 1.484359] x15: ffffffffffffffff x14: ffffffc0fa66f850
[ 1.489677] x13: ffffffc0fa66f755 x12: ffffffffffffffff
[ 1.494994] x11: ffffffc0fa66f710 x10: ffffffc0fa66f710
[ 1.500311] x9 : 0000000000000002 x8 : 0000000000000002
[ 1.505630] x7 : ffffff8008fc6e88 x6 : 0000000000000090
[ 1.510948] x5 : 000000000000008d x4 : 0000000000000001
[ 1.516264] x3 : 0000000000000000 x2 : 0000000000000000
[ 1.521581] x1 : 0000000000000000 x0 : 0000000000000000
[ 1.526898]
[ 1.528387] Process swapper/0 (pid: 1, stack limit = 0xffffffc0fa66c000)
[ 1.535078] Call trace:
[ 1.537523] [] tegra_channel_populate_dev_info+0xac/0x190
[ 1.544476] [] tegra_channel_init_subdevices+0x2e8/0x790
[ 1.551341] [] tegra_vi_graph_notify_complete+0x2e8/0x6e0
[ 1.558294] [] v4l2_async_test_notify+0x104/0x120
[ 1.564553] [] v4l2_async_notifier_register+0x128/0x198
[ 1.571331] [] tegra_vi_graph_init+0x234/0x288
[ 1.577330] [] tegra_vi_media_controller_init+0x1d0/0x208
[ 1.584283] [] vi_probe+0x378/0x520
[ 1.589329] [] platform_drv_probe+0x60/0xc0
[ 1.595068] [] driver_probe_device+0xd8/0x408
[ 1.600980] [] __driver_attach+0xdc/0x128
[ 1.606544] [] bus_for_each_dev+0x5c/0xa8
[ 1.612108] [] driver_attach+0x30/0x40
[ 1.617412] [] bus_add_driver+0x20c/0x2a8
[ 1.622975] [] driver_register+0x6c/0x110
[ 1.628539] [] __platform_driver_register+0x5c/0x68
[ 1.634974] [] vi_init+0x2c/0x38
[ 1.639760] [] do_one_initcall+0x44/0x130
[ 1.645326] [] kernel_init_freeable+0x1a0/0x244
[ 1.651412] [] kernel_init+0x18/0x108
[ 1.656630] [] ret_from_fork+0x10/0x30
[ 1.661937] —[ end trace 925891fe2b0d5cf1 ]—
[ 1.671462] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[ 1.671462]
[ 1.680595] SMP: stopping secondary CPUs
[ 1.684568] Kernel Offset: disabled
[ 1.688054] Memory Limit: none
[ 1.695871] Rebooting in 5 seconds…

Any suggestion on above issue.@WayneWWW @ShaneCCC
Thanks
Surya

Hi,

May I know why you have to “port uboot”? Don’t you direct use the uboot from our driver?

Generally you only need to configure the dtb file for custom carrier board bring up.

Hi WayneWWW,

I just have followed the documents “Jetson Nano platform adaption & bringup” & as per it ported U-boot which is mostly similar to default uboot for jetson nano devkit. I have also tested with default uboot & got the same issue as above.

Anyway, our boot issue(kernel_panic) got solved by disabling “VI” in our device tree file. Our custom board doesnt have any HDMI or DP port. So, we have disabled “hdmi-display”, “dp”, “tegra210-dc” & “vi” in our device tree file.

Though the board is booted successfully now, but its unable to detect “IMX219” camera. I didnt get any imx219 related logs from dmesg.

I have attache my device tree files here for reference.dts.tar.gz (2.9 KB)
@WayneWWW @ShaneCCC @JerryChang
Thanks
Surya

Can’t disable the VI if you need MIPI camera support.

Hi WayneWWW,

I have attached here my boot log with & without enabling “vi” in device tree. We found without “vi” board booted sucessfully, but unable to detect IMX219 camera on custom nano board. But when we enabled “VI” the kernel got crashed or leads to kernel panic.

Any suggestion ?custom_dev_boot_log_without_vi.txt (79.2 KB) custom_dev_boot_log_with_VI.txt (21.2 KB)

@WayneWWW @ShaneCCC @JerryChang

Thanks
Surya

My mistake. Please ignore my previous comment. I just deleted them.

Have you try the default kernel Image/DTB?

Hello ShaneCCC,

Thanks a lot .
I have tested with default kernel Image/DTB & its working fine.
For custom board, we just removed all the unnecessary interfaces that we dont use & everything works fine for us.

Thanks
Surya