extlinux.conf: FDT No Longer Used for DTB File Specification?

Hi DaneLLL,

I attached full log file for you.
I will share lane mapping for you later. But because tx2 module can work normal when plug in devkit tx1, so I don’t think lane mapping have problem.

bootlog.log (84.3 KB)

hi Khai,
Please replace Linux_for_Tegra\bootloader\t186ref\BCT\tegra186-mb1-bct-pmic-quill-p3310-1000-c03.cfg in

And try again.
tegra186-mb1-bct-pmic-quill-p3310-1000-c03.cfg.txt (7.47 KB)

Hi DaneLLL,

Lane maping below:

nvidia@tegra-ubuntu:~/devmem2-master$ sudo ./devmem2 0x02520284 b
/dev/mem opened.
Memory mapped at address 0x7fabe51000.
Value at address 0x38929028 (0x7fabe51284): 0x0
nvidia@tegra-ubuntu:~/devmem2-master$ sudo ./devmem2 0x02530284 b
/dev/mem opened.
Memory mapped at address 0x7f9d8c0000.
Value at address 0x38994564 (0x7f9d8c0284): 0x1
nvidia@tegra-ubuntu:~/devmem2-master$ sudo ./devmem2 0x02540284 b
/dev/mem opened.
Memory mapped at address 0x7f92446000.
Value at address 0x39060100 (0x7f92446284): 0x1
nvidia@tegra-ubuntu:~/devmem2-master$ sudo ./devmem2 0x02550284 b
/dev/mem opened.
Memory mapped at address 0x7f9eee1000.
Value at address 0x39125636 (0x7f9eee1284): 0x1
nvidia@tegra-ubuntu:~/devmem2-master$ sudo ./devmem2 0x02560284 b
/dev/mem opened.
Memory mapped at address 0x7fa078b000.
Value at address 0x39191172 (0x7fa078b284): 0x1
nvidia@tegra-ubuntu:~/devmem2-master$ sudo ./devmem2 0x02570284 b
/dev/mem opened.
Memory mapped at address 0x7f91693000.
Value at address 0x39256708 (0x7f91693284): 0x2

I found the tap on TX2 module “FOR USE NVIDIA DEVELOPER KIT ONLY”. So can tx2 module work on other system ? (NOTE : My system can work normal with tx1).


Hi DaneLLL,

PCIe of TX2 can link up on my system. Thanks you very much.
Would you tell me why you remove block :

pmic.generic.1.block[2].type = 1; # I2C Type
pmic.generic.1.block[2].i2c-controller-id = 0;
pmic.generic.1.block[2].slave-add = 0xE8; # 7BIt:0x74
pmic.generic.1.block[2].reg-data-size = 8;
pmic.generic.1.block[2].reg-add-size = 8;
pmic.generic.1.block[2].block-delay = 10;
pmic.generic.1.block[2].count = 2;
pmic.generic.1.block[2].commands[0].0x07.0xFF = 0xEF;
pmic.generic.1.block[2].commands[1].0x03.0xFF = 0x10;


Hi DaneLLL,

is there a complete documentation of the configuration file available,
as we also run into the problem, that the USB3 and the PCIe ports do not work.

What we monitored is that, we completely removed the two gpio expanders from the linux devicetree and on the NVidia carrierboard USB3 and PCIe still works. After we physically disabled the gpio expanders the PCIe clock on the first PCIe Controller, which is connected to the PCIe 4x slot, show a static level. This is the same behavior as with our own carrier board, which does not have the I2C GPIO expanders, as we have a completely different power concept.

@ktnguyen did you measure the PCIe REFCLK and does it have 100MHz or does it have a static level of 140mV for PCIE_REFCLK_N and about 490mV for PCIE_REFCLK_P? It looks like there is some relation to the removed block in the config file and the PCIe and USB3 clock generation.

Now after applying the config mentioned by DaneLLL PCIe and USB3 works.

best regards

Hi MichaelStickel,

When we measure, PCIe REFCLK did not out, it mean no clock.

Hi DaneLLL,

I can see i2c bus 0, addr 0xE8 was gpio expander tca9539.

[0001.376] I> tegrabl_gpio_driver_register: register 'tca9539_gpio_driver' driver
[0001.383] I> tegrabl_tca9539_init: i2c bus: 0, slave addr: 0xe8
[0001.391] I> tegrabl_gpio_driver_register: register 'tca9539_gpio_driver' driver

Why need this to pcie work ?

One more issue, ethernet didn’t work on my system too. Would you please help me ?

nvidia@tegra-ubuntu:~$ ifconfig
lo        Link encap:Local Loopback
          inet addr:  Mask:
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:324 errors:0 dropped:0 overruns:0 frame:0
          TX packets:324 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:23920 (23.9 KB)  TX bytes:23920 (23.9 KB)

wlan0     Link encap:Ethernet  HWaddr 00:04:4b:8c:49:4f
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Hi DaneLLL,

When ethernet init, I fail as below :

[    3.198798] max_iso_bw is relaxed to 81920KB from 0KB
[    3.198800] ------------[ cut here ]------------
[    3.198803] WARNING: at ffffffc0007c4470 [verbose debug info unavailable]
[    3.198808] Modules linked in:
[    3.198809]
[    3.198821] CPU: 0 PID: 6 Comm: kworker/u12:0 Not tainted 4.4.15-tegra #1
[    3.198822] Hardware name: quill (DT)
[    3.198855] Workqueue: events_unbound async_run_entry_fn
[    3.198858] task: ffffffc1f6873e80 ti: ffffffc1f68b0000 task.ti: ffffffc1f68b0000
[    3.198875] PC is at __tegra_isomgr_register+0x30c/0x4d4
[    3.198878] LR is at __tegra_isomgr_register+0x30c/0x4d4
[    3.198880] pc : [<ffffffc0007c4470>] lr : [<ffffffc0007c4470>] pstate: 80000045
[    3.198880] sp : ffffffc1f68b3a80
[    3.198883] x29: ffffffc1f68b3a80 x28: 0000000000000460
[    3.198885] x27: ffffffc001320000 x26: ffffffc001260000
[    3.198887] x25: ffffffc000b4b000 x24: 0000000000000000
[    3.198889] x23: 0000000000000000 x22: 000000000000000a
[    3.198891] x21: 0000000000014000 x20: ffffffc001320c40
[    3.198893] x19: ffffffc001321100 x18: ffffffc000ad5840
[    3.198895] x17: ffffffc000a6da80 x16: 00000000fa83b2da
[    3.198896] x15: 000000000149318c x14: 000117a63334bbc6
[    3.198898] x13: 0000000000000000 x12: 0000000000000400
[    3.198900] x11: 0000000003d01aeb x10: ffffffc0012bae88
[    3.198902] x9 : ffffffc1f68b39d0 x8 : 4b30206d6f726620
[    3.198903] x7 : 424b303239313820 x6 : ffffffc0012bb838
[    3.198905] x5 : 0000000005ecc303 x4 : 0000000000000000
[    3.198907] x3 : ffffffc1f68b38f0 x2 : 0000000000000000
[    3.198908] x1 : 0000000000000000 x0 : 0000000000000029
[    3.198909]
[    3.198910] ---[ end trace d04b9b7c0f1b354c ]---
[    3.198914] Call trace:
[    3.198916] [<ffffffc0007c4470>] __tegra_isomgr_register+0x30c/0x4d4
[    3.198919] [<ffffffc0007c4654>] tegra_isomgr_register+0x1c/0x2c
[    3.198937] [<ffffffc00086c660>] eqos_probe+0x964/0xfac
[    3.198948] [<ffffffc000532948>] platform_drv_probe+0x50/0xbc
[    3.198953] [<ffffffc000530468>] driver_probe_device+0xc8/0x408
[    3.198955] [<ffffffc000530844>] __driver_attach+0x9c/0xa0
[    3.198960] [<ffffffc00052e4e4>] bus_for_each_dev+0x58/0x98
[    3.198962] [<ffffffc00052ff10>] driver_attach+0x20/0x28
[    3.198965] [<ffffffc00052e9a0>] driver_attach_async+0x14/0x50
[    3.198968] [<ffffffc0000bf830>] async_run_entry_fn+0x44/0x180
[    3.198978] [<ffffffc0000b7240>] process_one_work+0x154/0x434
[    3.198981] [<ffffffc0000b7654>] worker_thread+0x134/0x40c
[    3.198986] [<ffffffc0000bcebc>] kthread+0xe0/0xf4
[    3.198994] [<ffffffc000084e10>] ret_from_fork+0x10/0x40
[    3.198996] __tegra_isomgr_register(): ISO BW usage:
[    3.198998] __tegra_isomgr_register(): client=disp_0, iso dedi bw=0KB
[    3.199000] __tegra_isomgr_register(): client=disp_1, iso dedi bw=0KB
[    3.199002] __tegra_isomgr_register(): client=disp_2, iso dedi bw=0KB
[    3.199003] __tegra_isomgr_register(): client=isp_a, iso dedi bw=0KB
[    3.199007] __tegra_isomgr_register(): client=tegra_camera_ctrl, iso dedi bw=0KB
[    3.199008] __tegra_isomgr_register(): client=ape_adma, iso dedi bw=0KB
[    3.199009] __tegra_isomgr_register(): client=eqos, iso dedi bw=81920KB
[    3.199010] __tegra_isomgr_register(): revisit BW usage of iso clients

Do you have any ideal ?


Hi DaneLLL,

After disable “eth_iso”, my system can work normal.
I saw isomgr module init failed in my system

[    1.754183] isomgr_init(): iso emc max clk=0KHz
[    1.754185] isomgr_init(): max_iso_bw=0KB

Please help me some question :

  1. what is iso ? I saw it use for camera, sound, ethernet…
  2. Why my system init failed ? do you have any ideal ?


It turned out that after power-tree modification USB 3.0 speeds are not available for custom carrier boards, [it works, but in 2.0 modes only]

I am just wondering if that affects the default nvidia board


How Do I implement the following? Will it likely to result in usb3.0 functionality at third carriers boards?

start of quote:

Please replace Linux_for_Tegra\bootloader\t186ref\BCT\tegra186-mb1-bct-pmic-quill-p3310-1000-c03.cfg in


end of quote

The above states to substitute the file at the package.
I have Jetson. I have downloaded the package. How do I implement the solution steps? I have replaced the file at the downloaded drivers folder. Now what? How do I implement changes at Jetson OS?

The issue has been separated to a dedicated thread:
In regards to the topic:
@linuxdev: It seems that which DTB is loaded on boot could be declared in extlinux.conf as in the attached example.

@ktnguyen, ISO manager is to manage emc clock/bandwidth. Not sure why it has to be disabled in your case, please start a new thread if you would like to enable it.
@Andrey1984, please separate your issue into a new thread.

Please kindly help since the title is far away from issues now.

Where can I find the documentation on how the device tree works now?

I would like to know this too. If extlinux.conf is no longer used and it is a uboot parameter that would be nice to know.

1 I do not think nvidia provide details about the dtb.So it makes many pepole to be confused.
2 The previous method of simply repacing dtb in tx1 is not effective.
3 Now I will tell you the step about applying a new dtb file:
(1)Build your new dtb file,you will find the file tegra186-quill-p3310-1000-c03-00-base.dtb in the directory arch/arm64/boot/dts
(2)Copy the dtb file tegra186-quill-p3310-1000-c03-00-base.dtb into 64_TX2/Linux_for_Tegra_tx2/kernel/dtb and replace the original dtb file
(3)Take the TX2 board into recovery mode.
(4)Change into directory 64_TX2/Linux_for_Tegra_tx2/ and run “sudo ./flash.sh -r -k kernel-dtb jetson-tx2 mmcblk0p1”.
(5)Reboot your TX2.

由于缺少信息,导致设备树的部分很是令人困惑。在TX2 R28.1上,设备树已经不是简简单单的替换了,需要进入恢复模式,用flash.sh命令烧写。如果简单替换,是不能产生作用的。即使编辑extlinux.conf,在里面设定dtb具体路径也是不合适的,那样将会导致部分功能不能用(比如网络)。

Thanks haijun. Please also refer to [url]Jetson/TX2 DTB - eLinux.org