gucj
March 21, 2025, 7:12am
1
请教一下,目前的我修改JP6.2系统的RGMII接口过程,更改PINMUX配置,将系统烧录到JAO模组启动,发现PG.05没有反应,即使用如下指令 sudo cat /sys/kernel/debug/
未出现下图
以下是我的PINMUX文件和flash log
Orin-jao_jp62_1-gpio-default.dtsi.txt (4.9 KB)
Orin-jao_jp62_1-padvoltage-default.dtsi.txt (2.4 KB)
Orin-jao_jp62_1-pinmux.dtsi.txt (65.7 KB)
flash-0308.log (555.6 KB)
我之前在jp5.1.1更改RGMII接口成功了,我也核对了很多次我的流程,没有问题。
请您帮忙看看可能会有啥问题
Hi,
If the device cannot be flashed/booted, please refer to the page to get uart log from the device:
Jetson/General debug - eLinux.org
And get logs of host PC and Jetson device for reference. If you are using custom board, you can compare uart log of developer kit and custom board to get more information.
Also please check FAQs:
Jetson AGX Orin FAQ
If possible, we would suggest follow quick start in developer guide to re-flash the system:
Quick Start — NVIDIA Jetson Linux Developer Guide 1 documentation
And see if the issue still persists on a clean-flashed system.
Thanks!
Looks nothing wrong from the pinmux file here.
gucj
March 21, 2025, 8:10am
5
确实非常奇怪!!!我也同时改了PCIe c7的复位管脚,然后PCIe c7接口生效了,但是PG.05就是没有生效 我这边难道还是流程问题么?
那您觉得我还需要检查哪些地方?
What does that mean “PG.05就是没有生效”? How did you tell that?
This means your kernel dtb change didn’t take effect. Or the driver crashed so that phy-reset didn’t get registered.
This is not related to pinmux directly.
gucj
March 24, 2025, 8:06am
9
嗯嗯 那请教一下,JP6.2的系统对设备树 驱动等的语法或者依赖检查都严格了?
或者这么说,我使用JP5.1.1时,未使能我的rgmii接口驱动(使用的是默认的系统驱动,不是对应PHY芯片的驱动)仍然可以使能,虽然MDIO报错,但是仍然link up。
然后同样的套路在JP6.2肯定是无法行得通了?
,JP6.2的系统对设备树 驱动等的语法或者依赖检查都严格了?
Yes, kernel5.15 has such check.
gucj
March 26, 2025, 3:56am
11
这个我应该怎么查?怎么确定kernel dtb产生效果了? 我在JAO-64GB上将/boot/dtb/kernel_tegra234-p3737-0000+p3701-0005-nv.dtb
转为.dts文件,确认是我改过了。
这里有个疑问,我更改ethernet@2310000
后,在.dts文件里2个节点出现,这个合理么?我理解他们应该是合成一个的。
还有就是怎么确认phy-reset didn’t get registered
?
非常感谢!!!
我想這句話已經反應問題在哪了. 你改的東西放錯位置.
應該有一個是你自己加的東西, 另外一個才是正確的位置. 然後你加的那部份放錯層了.
基本上就是driver有跑起來, 有去註冊gpio, 那麼/sys/kernel/gpio就會反應出來
如果沒有, 最基本的確認就是driver到底有沒有probe. 從上面講的話來看 應該是沒有.
gucj
March 26, 2025, 6:24am
14
你好 我还是不知道怎么改,请帮忙指导一下,我目前更改设备树的步骤是在/${L4T_PWD}/Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public/nv-platform/
目录下新增一个temp.dtsi
,然后在temp.dtsi
写入
/ {
// ethernet@6800000 {
// status = "disabled";
// };
ethernet@6810000 {
status = "disabled";
};
ethernet@6910000 {
status = "disabled";
};
ethernet@6A10000 {
status = "disabled";
};
ethernet@6B10000 {
status = "disabled";
};
//#节点"ethernet@6800000"下添加如下代码,注意和ethernet@6800000在同一个节点
//#注意 &tegra_main_gpio 必须改成 &gpio
/* EQOS */
ethernet@2310000 {
status = "okay";
nvidia,mac-addr-idx = <0>;
nvidia,mac-platform-mtu = <8000>;
/* 1=enable, 0=disable */
nvidia,pause_frames = <0>;
nvidia,phy-reset-gpio = <&gpio TEGRA234_MAIN_GPIO(G, 5) 0>;
phy-mode = "rgmii-id";
phy-handle = <&phy>;
/*
/delete-node/ fixed-link;
fixed-link {
speed = <0x3e8>;
full-duplex;
};
*/
mdio {
compatible = "nvidia,eqos-mdio";
#address-cells = <1>;
#size-cells = <0>;
phy: phy@0 { /* phy@1 */
reg = <0>; /* reg = <1>; */
nvidia,phy-rst-pdelay-msec = <224>; /* msec */
nvidia,phy-rst-duration-usec = <10000>; /* usec */
interrupt-parent = <&gpio>;
interrupts = <TEGRA234_MAIN_GPIO(G, 4) IRQ_TYPE_LEVEL_LOW>;
};
};
};
};
然后在/${L4T_PWD}/Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public/nv-platform/tegra234-p3737-0000+p3701-0005-nv.dts
中添加#include "temp.dtsi"
,最后编译设备树。
以上的步骤有问题么?
如果有问题请问有没有更合理的方式?是直接在原有的ethernet@2310000
节点处增加节点属性?
Hi,
其實只是一個很簡單的事情. 你改的步驟大方向是沒錯的.
只是你現在"ethernet@2310000"放錯層… 所以實際上變成你自己創造了另外一個 "ethernet@2310000"在不同層. 所以你才會說你看到有兩個ethernet@2310000
麻煩注意一下device tree之所以叫"tree"是因為每個node就像一個資料夾路徑一樣有各自的目錄…
1 Like
gucj
March 26, 2025, 6:36am
16
嗯嗯 我明白了。但是具体应该怎么改呢? 我看过很多人用的方式都不一样,所以我想问问有没有合理的流程(具体到改哪个文件,改完后怎么编译等等),而且我在JP5.1.1能用的流程到JP6.2就不通了,这个兼容性有点差,建议贵司能出一个您认为合理的具体流程。
谢谢!!!!
PS:开发文档给的都是关键步骤@-@
簡單來說ethernet@2310000現在上面多了一層叫bus@0. 你沒把ethernet@2310000放在他底下. 所以才會跑出兩個.