Jump to content

Lost network in rock-3a after upgrading to 24.2.1


Jose Luis
Go to solution Solved by Jose Luis,

Recommended Posts

Hi,

 

after upgrading linux-u-boot-rock-3a-current, linux-image-current-rockchip64 and linux-dtb-current-rockchip64 to the 24.2.1 versions, the system losses the network producing kernel errors in dmesg:

 

[  432.408850] rk_gmac-dwmac fe010000.ethernet: IRQ eth_lpi not found
[  432.410880] rk_gmac-dwmac fe010000.ethernet: clock input or output? (input).
[  432.410929] rk_gmac-dwmac fe010000.ethernet: Can not read property: tx_delay.
[  432.410954] rk_gmac-dwmac fe010000.ethernet: set tx_delay to 0x30
[  432.410983] rk_gmac-dwmac fe010000.ethernet: Can not read property: rx_delay.
[  432.411002] rk_gmac-dwmac fe010000.ethernet: set rx_delay to 0x10
[  432.411051] rk_gmac-dwmac fe010000.ethernet: integrated PHY? (no).
[  432.411223] rk_gmac-dwmac fe010000.ethernet: clock input from PHY
[  432.416282] rk_gmac-dwmac fe010000.ethernet: init for RGMII_ID
[  432.417113] rk_gmac-dwmac fe010000.ethernet: User ID: 0x30, Synopsys ID: 0x51
[  432.417176] rk_gmac-dwmac fe010000.ethernet:         DWMAC4/5
[  432.417205] rk_gmac-dwmac fe010000.ethernet: DMA HW capability register supported
[  432.417227] rk_gmac-dwmac fe010000.ethernet: RX Checksum Offload Engine supported
[  432.417248] rk_gmac-dwmac fe010000.ethernet: TX Checksum insertion supported
[  432.417268] rk_gmac-dwmac fe010000.ethernet: Wake-Up On Lan supported
[  432.417287] rk_gmac-dwmac fe010000.ethernet: TSO supported
[  432.417306] rk_gmac-dwmac fe010000.ethernet: Enable RX Mitigation via HW Watchdog Timer
[  432.417336] rk_gmac-dwmac fe010000.ethernet: Enabled RFS Flow TC (entries=10)
[  432.417369] rk_gmac-dwmac fe010000.ethernet: TSO feature enabled
[  432.417391] rk_gmac-dwmac fe010000.ethernet: Using 32/32 bits DMA host/device width
[  432.506616] rk_gmac-dwmac fe010000.ethernet end0: renamed from eth0
[  432.569725] rk_gmac-dwmac fe010000.ethernet end0: Register MEM_TYPE_PAGE_POOL RxQ-0
[  432.571832] rk_gmac-dwmac fe010000.ethernet end0: __stmmac_open: Cannot attach to PHY (error: -19)

 

I went back to the 23.11.1 versions of the packages and the system has the network back:

 

-rwxr-xr-x 1 root root   319396 Mar  3 10:40 linux-dtb-current-rockchip64_23.11.1_arm64__6.1.63-S69e4-Df461-P59b3-C3542Hfe66-HK01ba-Vc222-B1743-R448a.deb
-rwxr-xr-x 1 root root 41712668 Mar  3 10:40 linux-image-current-rockchip64_23.11.1_arm64__6.1.63-S69e4-Df461-P59b3-C3542Hfe66-HK01ba-Vc222-B1743-R448a.deb
-rwxr-xr-x 1 root root  1036380 Mar  3 10:40 linux-u-boot-rock-3a-current_23.11.1_arm64__2017.09-Sc559-Pedff-H8c72-Vda90-B1179-R448a.deb

 

Using these packages, this is the output from dmesg:

 

[    6.259295] rk_gmac-dwmac fe010000.ethernet: IRQ eth_lpi not found
[    6.259807] rk_gmac-dwmac fe010000.ethernet: supply phy not found, using dummy regulator
[    6.260113] rk_gmac-dwmac fe010000.ethernet: clock input or output? (input).
[    6.260133] rk_gmac-dwmac fe010000.ethernet: TX delay(0x4f).
[    6.260147] rk_gmac-dwmac fe010000.ethernet: RX delay(0x26).
[    6.260171] rk_gmac-dwmac fe010000.ethernet: integrated PHY? (no).
[    6.260276] rk_gmac-dwmac fe010000.ethernet: clock input from PHY
[    6.274301] rk_gmac-dwmac fe010000.ethernet: init for RGMII
[    6.285273] rk_gmac-dwmac fe010000.ethernet: User ID: 0x30, Synopsys ID: 0x51
[    6.285315] rk_gmac-dwmac fe010000.ethernet:         DWMAC4/5
[    6.285330] rk_gmac-dwmac fe010000.ethernet: DMA HW capability register supported
[    6.285340] rk_gmac-dwmac fe010000.ethernet: RX Checksum Offload Engine supported
[    6.285349] rk_gmac-dwmac fe010000.ethernet: TX Checksum insertion supported
[    6.285357] rk_gmac-dwmac fe010000.ethernet: Wake-Up On Lan supported
[    6.285504] rk_gmac-dwmac fe010000.ethernet: TSO supported
[    6.285518] rk_gmac-dwmac fe010000.ethernet: Enable RX Mitigation via HW Watchdog Timer
[    6.285533] rk_gmac-dwmac fe010000.ethernet: Enabled RFS Flow TC (entries=10)
[    6.285547] rk_gmac-dwmac fe010000.ethernet: TSO feature enabled
[    6.285558] rk_gmac-dwmac fe010000.ethernet: Using 32/32 bits DMA host/device width
[    6.360605] spi-nor spi4.0: mx25u12835f (16384 Kbytes)
[    6.599788] rk_gmac-dwmac fe010000.ethernet end0: renamed from eth0
[   21.045985] rk_gmac-dwmac fe010000.ethernet end0: Register MEM_TYPE_PAGE_POOL RxQ-0
[   21.139671] rk_gmac-dwmac fe010000.ethernet end0: PHY [stmmac-0:00] driver [RTL8211F Gigabit Ethernet] (irq=POLL)
[   21.147558] dwmac4: Master AXI performs any burst length
[   21.147613] rk_gmac-dwmac fe010000.ethernet end0: No Safety Features support found
[   21.147647] rk_gmac-dwmac fe010000.ethernet end0: IEEE 1588-2008 Advanced Timestamp supported
[   21.148015] rk_gmac-dwmac fe010000.ethernet end0: registered PTP clock
[   21.155727] rk_gmac-dwmac fe010000.ethernet end0: configuring for phy/rgmii link mode
[   25.295999] rk_gmac-dwmac fe010000.ethernet end0: Link is Up - 1Gbps/Full - flow control rx/tx
[   25.296059] IPv6: ADDRCONF(NETDEV_CHANGE): end0: link becomes ready

 

Thanks in advance.

support.txt dmesg.txt

Edited by Jose Luis
Link to comment
Share on other sites

Doing more tests, I've upgraded linux-image-current-rockchip64 to 24.2.1 ( 6.6.16 ) and linux-image-edge-rockchip64 with old linux-dtb-current-rockchip64 ( 23.11.1 ) and booted fine without any issue and network working.

 

When I updated either linux-dtb-current-rockchip64 or linux-dtb-edge-rockchip64 to 24.2.1 and reboot it stops working.

Link to comment
Share on other sites

  • Solution

Checking my system:

 

selu@rock-3a:~$ dd if=/dev/mmcblk0 seek=64 skip=64 count=32704 of=uboot.bin
32704+0 records in
32704+0 records out
16744448 bytes (17 MB, 16 MiB) copied, 0.564798 s, 29.6 MB/s



selu@rock-3a:~$ strings uboot.bin | grep "U-Boot"
U-Boot SPL board init
command in your U-Boot project: ./scripts/stacktrace.sh dump.txt %s
U-Boot SPL 2017.09-armbian (Sep 19 2022 - 14:20:01)
U-Boot
FIT Image with ATF/OP-TEE/U-Boot
U-Boot(64-bit)
*U-Boot
U-Boot dtb
** Invalid partition type "%.32s" (expect "U-Boot")
Enter U-Boot charging mode
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
U-Boot.armv8
command in your U-Boot project: ./scripts/stacktrace.sh dump.txt %s
MU-Boot EFI: Relocation at %p is out of range (%lx)
U-Boot 2017.09-armbian
## U-Boot bootargs: %s
No valid device tree binary found - please append one to U-Boot binary, use u-boot-dtb.bin or define CONFIG_OF_EMBED. For sandbox, use -d <file.dtb>
U-Boot
Sysmem Error: Failed to reserve sysmem for U-Boot framework
U-Boot 2017.09-armbian (Sep 19 2022 - 14:20:01 +0200)

 

And this is different from the bundled U-Boot:

 

selu@rock-3a:~$ strings /usr/lib/linux-u-boot-current-rock-3a/u-boot.itb | grep "U-Boot"
FIT Image with ATF/OP-TEE/U-Boot
U-Boot(64-bit)
*U-Boot
U-Boot dtb
** Invalid partition type "%.32s" (expect "U-Boot")
Enter U-Boot charging mode
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
U-Boot.armv8
command in your U-Boot project: ./scripts/stacktrace.sh dump.txt %s
MU-Boot EFI: Relocation at %p is out of range (%lx)
U-Boot 2017.09-armbian
## U-Boot bootargs: %s
No valid device tree binary found - please append one to U-Boot binary, use u-boot-dtb.bin or define CONFIG_OF_EMBED. For sandbox, use -d <file.dtb>
U-Boot
Sysmem Error: Failed to reserve sysmem for U-Boot framework
U-Boot 2017.09-armbian (May 20 2024 - 00:41:52 +0000)

 

I could not update U-Boot via armbian-install, somehow my rootfs on NVMe breaks install in the script ( I boot from SD with /boot in it ).

 

Not detecting the device ( using set -x )

++ sed -e 's/^.*root=//' -e 's/ .*$//'
+ root_uuid=UUID=a0d95135-003b-44d5-8efe-ef62615e7dea
++ blkid
++ tr -d '":'
++ grep UUID=a0d95135-003b-44d5-8efe-ef62615e7dea
++ awk '{print $1}'
+ root_partition=/dev/nvme0n1
++ echo /dev/nvme0n1
++ sed 's/\/dev\///g'
+ root_partition_name=nvme0n1
++ lsblk -ndo pkname /dev/nvme0n1
+ root_partition_device_name=
+ root_partition_device=/dev/
+ exit 1

 

I crafted a quick n'dirty script:

#!/bin/bash

source /usr/lib/u-boot/platform_install.sh

DIR=/usr/lib/linux-u-boot-current-rock-3a
root_partition_device=/dev/mmcblk0

write_uboot_platform "$DIR" "${root_partition_device}"

 

 

And I can confirm that u-boot was updated in SD and now works fine! YEEHAA!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines