添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement . We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The ICPLUS IP1001M Ethernet Transceiver installed on TV-box, and it does not supported by Armbian. There are driver sources: https://github.com/torvalds/linux/blob/master/drivers/net/phy/icplus.c
Can you add IP1001M support to your Armbian image?

According to the log, the phy addr is incorrect, so it is necessary to measure the addr, specifically whether the level of the above 5 pins is high or low. The phy addr of RTL8211F is 0, but this value may be other values, there are 32 kinds from 00000-11111, or you can try one by one.

If you have a multimeter, it is very convenient, you can get the correct result once you measure it, otherwise you have to keep changing the dtb

These two feet are also tested, involving the values of rx_delay and tx_delay

2007171936_IC-Plus-IP1001M_C703552.pdf

@psergeevich

ip1001m-dtb.zip

According to your feedback, there are a total of 4 possibilities. You download the file and decompress it, put the 4 dtb files into the /boot/dtb/amlogic directory, modify the dtb file name in /boot/uEnv.txt , and see which one It can drive your IP1001M network card normally, and feedback the results after the test, thank you. reboot after each modification to see if the network is normal.

dmesg | grep eth

All 4 dtb-files working normally. After reboot with each of them network is normal.
I tested download/upload internet speed with "speedtest" python packet, and all results the same (about 50 Mbit/s).
I tested download speed with wget 50 MB file and found differences:
meson-sm1-x96-max-plus-ip1001m-id - best results. First downloading about 2MB/s, subsequents - 6 MB/s
meson-sm1-x96-max-plus-ip1001m-rxid - all attempts about 2 - 2.5 MB/s
meson-sm1-x96-max-plus-ip1001 - about 800-900 MB/s
meson-sm1-x96-max-plus-ip1001m-txid - about 500 - 600 MB/s

Interface speed was 100 Mbit/s, because I did not have gigabit switch. Boot logs and another info I will send further.

IP1001MDTB.zip

meson-sm1-x96-max-plus-ip1001 - about 800-900 MB/s
meson-sm1-x96-max-plus-ip1001m-txid - about 500 - 600 MB/s

These two are the first choice, but the first one cannot be optimized, and the second one can be further fine-tuned. Attached is the fine-tuned dtb, you can test which one is better.
Need to use iperf3 test to get more accurate test data, data in both directions of uplink and downlink

iPerf3 Speed Test Tool:
https://iperf.fr/iperf-doc.php
https://www.jianshu.com/p/01cc7f11bbb9

I connected X96Max+ to PC with gigabit ethernet adapter (192.168.5.3) and launched iperf3 -s on PC. On X96Max+ I launched 3 times for every .dtb:

iperf3 -c 192.168.5.3
iperf3 -c 192.168.5.3 -R
iperf3 -c 192.168.5.3 -u -b 0
iperf3 -c 192.168.5.3 -u -b 0 -R

All results are stored in files named xxxr.y, where:
xxx - last digits in .dtb-file name
r - present if reverse mode (-R key) used
y - test sequence number (0 - 2)
All files I will send further.

Thank you very much for your test. Now the dtb file of 2800 is tentatively used. Please execute the following command and give feedback on the execution result. This should be added to the comments of the dts file.

cat /sys/class/net/eth0/phydev/phy_id

Thank you very much for the very detailed test report for x96max plus v5.1 (ip1001m phy), your contribution has been recorded in the contributor list. Now unifreq has added that dtb in his relevant kernel. In the future, more users of this network card can benefit from your contribution.

unifreq/linux-5.15.y@bca00ac

unifreq/linux-5.10.y@2d09c24

unifreq/linux-5.4.y@172adad

unifreq/linux-5.17.y@e983ac4

I found my tvbox model X96Max_Plus2_AI has a ip1001m chip. It's ethernet works fine in anroid9.

Recently I tested the armbian system, changed uEnv.txt FDT option to meson-sm1-x96-max-plus-ip1001m.dtb in /dtb/amlogic/ directory and above zips, but the eth0 still doesn't work.

I missed something? need recompile a new kernel?

uname -a
Linux armbian 5.10.113-meson64-dev #2 SMP PREEMPT Wed Apr 27 13:15:52 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux

dmesg |grep eth
[ 0.000000] psci: probing for conduit method from DT.
[ 5.519913] meson8b-dwmac ff3f0000.ethernet: IRQ eth_wake_irq not found
[ 5.521299] meson8b-dwmac ff3f0000.ethernet: IRQ eth_lpi not found
[ 5.527612] meson8b-dwmac ff3f0000.ethernet: PTP uses main clock
[ 5.534122] meson8b-dwmac ff3f0000.ethernet: no reset control found
[ 5.540709] meson8b-dwmac ff3f0000.ethernet: User ID: 0x11, Synopsys ID: 0x37
[ 5.547574] meson8b-dwmac ff3f0000.ethernet: DWMAC1000
[ 5.551837] meson8b-dwmac ff3f0000.ethernet: DMA HW capability register supported
[ 5.560032] meson8b-dwmac ff3f0000.ethernet: RX Checksum Offload Engine supported
[ 5.566677] meson8b-dwmac ff3f0000.ethernet: COE Type 2
[ 5.571846] meson8b-dwmac ff3f0000.ethernet: TX Checksum insertion supported
[ 5.579626] meson8b-dwmac ff3f0000.ethernet: Wake-Up On Lan supported
[ 5.585213] meson8b-dwmac ff3f0000.ethernet: Normal descriptors
[ 5.591853] meson8b-dwmac ff3f0000.ethernet: Ring mode enabled
[ 5.596857] meson8b-dwmac ff3f0000.ethernet: Enable RX Mitigation via HW Watchdog Timer
[ 17.816440] meson8b-dwmac ff3f0000.ethernet eth0: no phy at addr -1
[ 17.820112] meson8b-dwmac ff3f0000.ethernet eth0: stmmac_open: Cannot attach to PHY (error: -19)
[ 17.991023] meson8b-dwmac ff3f0000.ethernet eth0: no phy at addr -1
[ 17.993989] meson8b-dwmac ff3f0000.ethernet eth0: stmmac_open: Cannot attach to PHY (error: -19)
[ 18.022483] meson8b-dwmac ff3f0000.ethernet eth0: no phy at addr -1
[ 18.025340] meson8b-dwmac ff3f0000.ethernet eth0: stmmac_open: Cannot attach to PHY (error: -19)
[ 18.068480] meson8b-dwmac ff3f0000.ethernet eth0: no phy at addr -1

sudo apt install device-tree-compiler

这是反编译命令:
dtc -I dtb -O dts -o /tmp/xxxxx.dts xxxxxx.dtb

这是编译命令:
dtc -I dts -O dtb -o xxxxxxx .dtb xxxxxxxx.dts

换成5月9日固件错识依旧。拆了测电压和psergeevich测的数据基本一致,但pin7不同。我测的pin7电压0.17v,与上面的数据电平相反。
我对arm dtb dts转换不是很熟,帮我生成一个dtb文件测试,将不胜感激。

@harrydou123
把你的测量结果发一下,#309 (comment) 他今天反应说现在的dtb在usb使用正常,写入emmc后网络无法使用。
用你的测试结果生成一个dtb试试

测了一下最新版本Armbian_Aml_jammy_server_05.18.2024中的Armbian_22.05.0_Aml_s905x3_jammy_5.10.116_2022.05.18.1932.img镜像,出现多个版本都能重现的问题,只是不同版本phandler冲突值不同。

按照5.10内核补丁提示,比较两个设备树。
diff meson-sm1-x96-max-plus-oc.dts meson-sm1-x96-max-plus-ip1001m.dts

261c261
<                       rx-internal-delay-ps = <0x320>;
>                       rx-internal-delay-ps = <0xaf0>;
1821,1822c1821,1822
<                                       ethernet-phy@0 {
<                                               reg = <0x00>;
>                                       ethernet-phy@3 {
>                                               reg = <0x03>;
2699c2699
<                                       compatible = "realtek,rtl8822cs-bt";
>                                       compatible = "brcm,bcm43438-bt";
2709c2709
<                                       status = "disabled";
>                                       status = "okay";

根据上下文,得到meson-sm1-x96-max-plus-ip1001m.dts

1807                         mdio-multiplexer@4c000 {
1808                                 compatible = "amlogic,g12a-mdio-mux";
1809                                 reg = <0x00 0x4c000 0x00 0xa4>;
1810                                 clocks = <0x02 0x13 0x1b 0x02 0xb1>;
1811                                 clock-names = "pclk\0clkin0\0clkin1";
1812                                 mdio-parent-bus = <0x1d>;
1813                                 #address-cells = <0x01>;
1814                                 #size-cells = <0x00>;
1816                                 mdio@0 {
1817                                         reg = <0x00>;
1818                                         #address-cells = <0x01>;
1819                                         #size-cells = <0x00>;
1821                                         ethernet-phy@3 {
1822                                                 reg = <0x03>;
1823                                                 max-speed = <0x3e8>;
1824                                                 reset-assert-us = <0x2710>;
1825                                                 reset-deassert-us = <0x13880>;
1826                                                 reset-gpios = <0x1e 0x0f 0x07>;
1827                                                 interrupt-parent = <0x1f>;
1828                                                 interrupts = <0x1a 0x08>;
1829                                                 phandle = <0x13>;
1830                                         };
1831                                 };
1833                                 mdio@1 {
1834                                         reg = <0x01>;
1835                                         #address-cells = <0x01>;
1836                                         #size-cells = <0x00>;
1838                                         ethernet_phy@8 {
1839                                                 compatible = "ethernet-phy-id0180.3301\0ethernet-phy-ieee802.3-c22";
1840                                                 interrupts = <0x00 0x09 0x04>;
1841                                                 reg = <0x08>;
1842                                                 max-speed = <0x64>;
1843                                         };
1844                                 };
1845                         };

在系统设置arm中armbian-config中,逐层找到armbian-config--System--Dtc--current.dts,mdio@0中ethernet-phy@3部分未加载。

1778                         mdio-multiplexer@4c000 {
1779                                 compatible = "amlogic,g12a-mdio-mux";
1780                                 reg = <0x00 0x4c000 0x00 0xa4>;
1781                                 clocks = <0x02 0x13 0x18 0x02 0xb1>;
1782                                 clock-names = "pclk\0clkin0\0clkin1";
1783                                 mdio-parent-bus = <0x1a>;
1784                                 #address-cells = <0x01>;
1785                                 #size-cells = <0x00>;
1787                                 mdio@0 {
1788                                         reg = <0x00>;
1789                                         #address-cells = <0x01>;
1790                                         #size-cells = <0x00>;
1791                                 };
1793                                 mdio@1 {
1794                                         reg = <0x01>;
1795                                         #address-cells = <0x01>;
1796                                         #size-cells = <0x00>;
1798                                         ethernet_phy@8 {
1799                                                 compatible = "ethernet-phy-id0180.3301\0ethernet-phy-ieee802.3-c22";
1800                                                 interrupts = <0x00 0x09 0x04>;
1801                                                 reg = <0x08>;
1802                                                 max-speed = <0x64>;
1803                                                 phandle = <0x11>;
1804                                         };
1805                                 };
1806                         };

将差别部分

1822                                                 reg = <0x03>;
1823                                                 max-speed = <0x3e8>;
1824                                                 reset-assert-us = <0x2710>;
1825                                                 reset-deassert-us = <0x13880>;
1826                                                 reset-gpios = <0x1e 0x0f 0x07>;
1827                                                 interrupt-parent = <0x1f>;
1828                                                 interrupts = <0x1a 0x08>;
1829                                                 phandle = <0x13>;
1830                                         };

插入current.dts,由armbian自己生成dtb文件,和hdmi部分的phandle号冲突,报以下错误:
/tmp/tmp.mWkYh9rd2Q/current.dts:1792.56-1801.43: ERROR (explicit_phandles): /soc/bus@ff600000/mdio-multiplexer@4c000/mdio@0/ethernet-phy@3: duplicated phandle 0x13 (seen before at /soc/bus@ff600000/bus@34400/pinctrl@40/hdmitx_ddc)

diff.zip

@harrydou123

meson-sm1-x96-max-plus-ip1001m.dtb.zip

Download this file and unzip it, then overwrite the file with the same name in /boot/dtb/amlogic/meson-sm1-x96-max-plus-ip1001m.dtb and restart it.

Feedback the test results.

How can I get in touch with you. My box is also ip1001M, which can only use 100M rate. Please help to debug it. Thanks

48 - 0v
49 - 0v
50 - 2.53v
51 - 2.53v
53 - 2.53v
7 - 2.53v
8 - 0v

https://github.com/cm9vdA/build-linux/blob/master/boot/dts/amlogic/mainline/deprecated/meson-g12b-magic-cube-x1.dts

ethernet@ff3f0000 {
compatible = "amlogic, g12a-eth-dwmac", "snps,dwmac";
reg = <0x0 0xff3f0000 0x0 0x10000 0x0 0xff634540 0x0 0x8 0x0 0xff64c000 0x0 0xa0 0x0 0xffd01008 0x0 0x4>;
reg-names = "eth_base", "eth_cfg", "eth_pll", "eth_reset";
interrupts = <0x0 0x8 0x1>;
interrupt-names = "macirq";
status = "okay";
clocks = <0x13 0x38>;
clock-names = "ethclk81";
pll_val = <0x9c0040a 0x927e0000 0xac5f49e5>;
analog_val = <0x20200000 0xc000 0x23>;
pinctrl-names = "external_eth_pins";
pinctrl-0 = <0x29>;
mc_val = <0x1609>;
cali_val = <0x80000>;
internal_phy = <0x0>;
phandle = <0xb0>;