Jump to content

How to install armbian in h618?


alienxz77b

Recommended Posts

Posted (edited)

These are the directories and files where all my changes are from.  You need to compile a transpeed image first to get the ~/build/cache directory and patches applied. Once the patches are applied you can stop the kernel compile.. (ctrl c). The cache directory is created using root. So to edit the files you need to "sudo".

https://github.com/NickAlilovic/build

 

Bottom of this page shows how to create patches. I think linux-6.7.y branch name has changed.  So use this command in linux and u-boot root directory to find the current branch name.

git branch --show-current

 

 

U-boot:

~/build/cache/sources/u-boot-worktree/u-boot/v2024.01/configs/transpeed-8k618-t_defconfig

~/build/cache/sources/u-boot-worktree/u-boot/v2024.01/arch/arm/dts/sun50i-h618-transpeed-8k618-t.dts

~/build/cache/sources/u-boot-worktree/u-boot/v2024.01/arch/arm/dts/Makefile

 

Linux-Kernel:

~/build/cache/sources/linux-kernel-worktree/6.7__sunxi64__arm64/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts

~/build/cache/sources/linux-kernel-worktree/6.7__sunxi64__arm64/arch/arm64/boot/dts/allwinner/Makefile

 

Armbian:

Armbian board config...

~/build/config/boards/transpeed-8k618-t.wip 

 

Patch directories...

~/build/patch/u-boot/u-boot-sunxi/

~/build/patch/kernel/archive/sunxi-6.7/patches.armbian/

 

Kernel patches config... ( mines (-) before the patch name disables the patch)

~/build/patch/kernel/archive/sunxi-6.7/series.armbian

~/build/patch/kernel/archive/sunxi-6.7/series.conf

 

firmware wifi/bluetooth...

~/build/packages/blobs/station/firmware/brcm/

 

We don't patch Armbian. Only U-boot and Linux-Kernel. If you want to edit transpeed-8k618-t.wip. Create your own wip (Work In Progress) for your box. 

Edited by Nick A
Link to comment
Share on other sites

6 hours ago, Nick A said:

Dmitriy Geels any chance you can install a serial connection on the boards uart?

Yes, it just takes more effort.

 

6 hours ago, Nick A said:

Your dts is not your full dts. It looks like dtbo_a an overlay file. You need to extract from boot_a and vendor_boot_a partition.

Interesting... Will go over other partitions.
 

6 hours ago, Nick A said:

You might need to do the toothpick trick again when you change your sdcard image. Not sure. 

No. You can find a boot script In the u-boot variables -- it just probes usb and both mmcs, likely controlled by some flag, which is set with toothpick.
During my first experiments, I managed to boot from USB the same way.

Link to comment
Share on other sites

@Nick A Probably I am one step further. I tried to use the adb command to fetch device tree info.

 

Unfortunately my partition scheme is different than the one in your earlier post. I see boot like partitions  (/dev/block/mmcblk0boot0 and /dev/block/mmcblk0boot1), but reading those with root user gives back fully zeroed partition files...

 

The closest file I could find is in "/sys/firmware" folder:

adb -s 192.168.8.21:5555 shell "ls -al /sys/firmware"

total 0
drwxr-xr-x  3 root root      0 1970-01-01 01:00 .
dr-xr-xr-x 12 root root      0 1970-01-01 01:00 ..
drwxr-xr-x  3 root root      0 1970-01-01 01:00 devicetree
-r--------  1 root root 129984 2024-05-16 11:50 fdt

 

dtc compiler refused to decompile it due to some format issue, but fdtdump utility could convert it to a flat text format (tools are taken from https://github.com/dgibson/dtc ) . Files are attached.

 

Is this the correct device tree file on my device?

t95h_x24_fdt.zip

Link to comment
Share on other sites

7 hours ago, Nick A said:

Your dts is not your full dts. It looks like dtbo_a an overlay file. You need to extract from boot_a and vendor_boot_a partition. Which is why I used Android_boot_image_editor. It extracted all my partitions with dts files in it without any problems.

Nothing found in boot_a, but a big one in vendor_boot_a. 

01_dtbdump_,sun50iw9.dts.gz

Link to comment
Share on other sites

Posted (edited)

Kil and Dmitriy can you guys try MiniArch. Steps to install MiniArch can be found here.

https://github.com/warpme/miniarch

 

Use the Tanix_tx6s image.

https://github.com/warpme/miniarch/releases/download/v20240209/MiniArch-20231112-6.7.4-board-h616.tanix_tx6s-SD-Image.img.xz

 

Dmitriy you can also try these images. Your dts has axp313 but your overlay adds axp806/axp305 values.

https://github.com/warpme/miniarch/releases/download/v20240209/MiniArch-20231112-6.7.4-board-h616.tanix_tx6s_axp313-SD-Image.img.xz

https://github.com/warpme/miniarch/releases/download/v20240209/MiniArch-20231112-6.7.4-board-h618.vontar_h618-SD-Image.img.xz

 

The Tanix_tx6s has a similar dts. Compare your dts with this one. 

kernel:

https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.6/files/0632-arm64-dts-allwinner-h616-add-Tanix-TX6s-TVbox.patch

U-boot:

https://github.com/warpme/minimyth2/blob/master/script/bootloaders/u-boot-h616/files/52-add-tanix-tx6s-defconfig.patch

 

					dcdca {
						regulator-name = "axp806-dcdca";
						regulator-min-microvolt = <0x927c0>;
						regulator-max-microvolt = <0x173180>;
						regulator-step-delay-us = <0x19>;
						regulator-final-delay-us = <0x32>;
						regulator-always-on;
						linux,phandle = <0x01>;
						phandle = <0x01>;
					};

 

+			reg_dcdca: dcdca {
+				regulator-always-on;
+				regulator-min-microvolt = <810000>;
+				regulator-max-microvolt = <1160000>;
+				regulator-name = "vdd-cpu";
+			};

 

https://www.rapidtables.com/convert/number/hex-to-decimal.html

 

min = 600000

max = 1520000

 

You can also compare your dram setup values with the ones in the defconfig. If you have trouble booting you can use these values. (I was able to boot vontar image even tho these values where slightly different. )

        dram_para1 {
            device_type = "dram_para1";
            dram_clk = <0x00000288>;
            dram_type = <0x00000003>;
            dram_dx_odt = <0x03030303>;
            dram_dx_dri = <0x0e0e0e0e>;
            dram_ca_dri = <0x00001c1c>;
            dram_odt_en = <0x00000001>;
            dram_para1 = <0x000030fb>;
            dram_para2 = <0x00000000>;
            dram_mr0 = <0x00000840>;
            dram_mr1 = <0x00000004>;
            dram_mr2 = <0x00000008>;
            dram_mr3 = <0x00000000>;
            dram_mr4 = <0x00000000>;
            dram_mr5 = <0x00000000>;
            dram_mr6 = <0x00000000>;
            dram_mr11 = <0x00000000>;
            dram_mr12 = <0x00000000>;
            dram_mr13 = <0x00000000>;
            dram_mr14 = <0x00000000>;
            dram_mr16 = <0x00000000>;
            dram_mr17 = <0x00000000>;
            dram_mr22 = <0x00000000>;
            dram_tpr0 = <0xc0001305>;
            dram_tpr1 = <0x00000000>;
            dram_tpr2 = <0x00000000>;
            dram_tpr3 = <0x00000000>;
            dram_tpr6 = <0x33808080>;
            dram_tpr10 = <0x002f0006>;
            dram_tpr11 = <0xffffdddd>;
            dram_tpr12 = <0xfedf7657>;
            dram_tpr13 = <0x00000040>;
        };
+CONFIG_DRAM_CLK=648
.
.
.
+CONFIG_DRAM_SUN50I_H616_DX_ODT=0x03030303
+CONFIG_DRAM_SUN50I_H616_DX_DRI=0x0e0e0e0e
+CONFIG_DRAM_SUN50I_H616_CA_DRI=0x00001c12
+CONFIG_DRAM_SUN50I_H616_ODT_EN=0x00000001
+CONFIG_DRAM_SUN50I_H616_TPR0=0xc0000c05
+CONFIG_DRAM_SUN50I_H616_TPR2=0x00000000
+CONFIG_DRAM_SUN50I_H616_TPR10=0x2f0007
+CONFIG_DRAM_SUN50I_H616_TPR11=0xffffdddd
+CONFIG_DRAM_SUN50I_H616_TPR12=0xfedf7557

If you want to create your own patches and Armbian build using my github, read the post at the top of this page..

Edited by Nick A
Link to comment
Share on other sites

@Nick A, Despite of your long instructions, several tries, spending hours with studying related topics, practically I could not reach any success. The most annoying thing is that when trying to boot the device from sdcard (using the uboot button), nothing happens, not even a single character appears on the console output.

 

How the boot process supposed to work? My understanding, that the beginning part of the sdcard image contains an uboot, which is able to work with a partly initialized (powered up) hardware (starting to use SoC internal RAM), and would make minimal further hardware initialization, and load modules from the boot partition, like kernel, root-fs, device tree. Is it a valid assumption, that uboot should echoe the start of boot process already? (At least when the stock firmware starts, I see uboot messages.)

 

Is it possible, that the uboot on the sdcard is not compatible with my hardware? Or simply the external boot is restricted by the software of the T95H android box?

 

I also downloaded firmware for the box (found e.g. T95H-H616-X22.img), and checked, what file structure it shows: it is "PhoenixSuite image file", different format than an armbian (or other os) image...

Link to comment
Share on other sites

for H618 simply try the mainline uboot and kernel >= 6.6

various things has gone into mainline u-boot and kernel that makes it run on Orange Pi Zero 3

one could perhaps even try the Orange Pi Zero 3 image to see how that goes

 

Link to comment
Share on other sites

Posted (edited)

Kil, have you tired the miniarch images? you might find a u-boot that works with your box. The u-boot I have is for AXP313. This could be the reason why your box doesn't show anything.  You need a u-boot with AXP305.  If you can't find a miniarch image that boots. You need to compile a new u-boot with your Dram settings and AXP305. Use the Dram Settings I got from your .DTS file.

 

Download the lastest mainline u-boot. Use this board config.  

 

/configs/x96_mate_defconfig

/arch/arm/dts/sun50i-h616-x96-mate.dts

/arch/arm/dts/Makefile

 

 

 

 

https://github.com/warpme/miniarch/releases

https://source.denx.de/u-boot/u-boot

https://docs.u-boot.org/en/latest/board/allwinner/sunxi.html

 

Sorry Kil, I don't have your box and time to do this for you. I can only provide information. Without console output there's nothing I can do. Are you using baud rate 115200?

 

If you need more help ask the Sunxi guys at:

https://oftc.irclog.whitequark.org/linux-sunxi/2024-05-23

Edited by Nick A
Link to comment
Share on other sites

hi, i was testing on h40 transpeed (t98_616) for several days.

 

 

with miniarch-tx6s, but it give me error on

Quote

( 72/119) upgrading archlinux-keyring              [----------------------]   0%( 72/119) upgrading archlinux-keyring              [######################] 100%
gpg: WARNING: server 'gpg-agent' is older than us (2.2.40 < 2.4.5)
gpg: Note: Outdated servers may lack important security fixes.
gpg: Note: Use the command "gpgconf --kill all" to restart them.
gpg: problem with fast path key listing: IPC parameter error - ignored
==> Appending keys from archlinux.gpg...
gpg: WARNING: server 'gpg-agent' is older than us (2.2.40 < 2.4.5)

after that the system seem corrupted, pacma didnt work, and sometimes it give error on mmc

 

Quote

U-Boot SPL 2024.01 (Feb 09 2024 - 19:40:28 +0100)
DRAM: 2048 MiB
Trying to boot from MMC1
NOTICE:  BL31: v2.10.0    (debug):v12.24.1-48-gd4269769c
NOTICE:  BL31: Built : 11:08:05, Feb  7 2024
NOTICE:  BL31: Detected Allwinner H616 SoC (1823)
NOTICE:  BL31: Found U-Boot DTB at 0x4a0acfa8, model: Tanix TX6s
INFO:    ARM GICv2 driver initialized
INFO:    Configuring SPC Controller
INFO:    PMIC: Probing AXP305 on RSB
WARNING: PMIC: No regulators DT node, skipping setup
INFO:    BL31: Platform setup done
INFO:    BL31: Initializing runtime services
INFO:    BL31: cortex_a53: CPU workaround for erratum 855873 was applied
INFO:    BL31: cortex_a53: CPU workaround for erratum 1530924 was applied
INFO:    PSCI: Suspend is unavailable
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x4a000000
INFO:    SPSR = 0x3c9
INFO:    Changed devicetree.


U-Boot 2024.01 (Feb 09 2024 - 19:40:28 +0100) Allwinner Technology

CPU:   Allwinner H616 (SUN50I)
Model: Tanix TX6s
DRAM:  2 GiB
Core:  56 devices, 21 uclasses, devicetree: separate
WDT:   Not starting watchdog@30090a0
MMC:   mmc@4020000: 0, mmc@4022000: 2
Loading Environment from FAT... Unable to read "uboot.env" from mmc0:1...
In:    serial@5000000
Out:   serial@5000000
Err:   serial@5000000
Allwinner mUSB OTG (Peripheral)
Net:   eth0: ethernet@5030000using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
MAC de:ad:be:ef:00:01
HOST MAC de:ad:be:ef:00:00
RNDIS ready
, eth1: usb_ether
starting USB...
Bus usb@5101000: USB EHCI 1.00
Bus usb@5101400: USB OHCI 1.0
Bus usb@5310000: USB EHCI 1.00
Bus usb@5310400: USB OHCI 1.0
scanning bus usb@5101000 for devices... 1 USB Device(s) found
scanning bus usb@5101400 for devices... 1 USB Device(s) found
scanning bus usb@5310000 for devices... 1 USB Device(s) found
scanning bus usb@5310400 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  2 1 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
1464 bytes read in 2 ms (714.8 KiB/s)
## Executing script at 4fc00000
34157056 bytes read in 1431 ms (22.8 MiB/s)
Failed to load '/h616_dtb'
28414 bytes read in 6 ms (4.5 MiB/s)
Working FDT set to 4fa00000
7944795 bytes read in 335 ms (22.6 MiB/s)
Moving Image from 0x40080000 to 0x40200000, end=42330000
## Flattened Device Tree blob at 4fa00000
   Booting using the fdt blob at 0x4fa00000
Working FDT set to 4fa00000
   Loading Ramdisk to 4986c000, end 49fffa5b ... OK
   Loading Device Tree to 0000000049862000, end 000000004986bfff ... OK
Working FDT set to 49862000

Starting kernel ...

[    0.000000] Linux version 6.7.4 (piotro@minimyth2-aarch64) (aarch64-minimyth-linux-gnu-gcc (GCC) 12.3.0, GNU ld (GNU Binutils) 2.40) #1 SMP PREEMPT Tue Feb  6 19:41:36 CET 2024
[    0.000000] Kernel command line: root=PARTUUID=346d1a6a-02 rw rootwait earlycon console=ttyS0,115200n8 loglevel=6 consoleblank=0
[    0.001982] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    0.037480] audit: type=2000 audit(0.029:1): state=initialized audit_enabled=0 res=1
[    0.075382] SCSI subsystem initialized
[    1.147418] Initialise system trusted keyrings
[    1.154131] NFS: Registering the id_resolver key type
[    1.159774] Key type id_resolver registered
[    1.163971] Key type id_legacy registered
[    1.232904] Key type asymmetric registered
[    1.237402] Asymmetric key parser 'x509' registered
[    1.242752] Asymmetric key parser 'pkcs8' registered
[    1.248205] Key type pkcs7_test registered
[    1.344593] Key type dns_resolver registered
[    1.363504] Loading compiled-in X.509 certificates
[    1.405314] gpio gpiochip0: Static allocation of GPIO base is deprecated, use dynamic allocation.
[    1.432096] sun50i-h616-pinctrl 300b000.pinctrl: supply vcc-ph not found, using dummy regulator
[    1.444871] sun50i-h616-pinctrl 300b000.pinctrl: supply vcc-pg not found, using dummy regulator
[    1.469577] usb_phy_generic usb_phy_generic.1.auto: dummy supplies not allowed for exclusive requests
[    1.667883] sun50i-cpufreq-nvmem: will use speed0 CPU OPPs
[    1.683245] gpio gpiochip1: Static allocation of GPIO base is deprecated, use dynamic allocation.
[    1.702346] sun50i-h616-r-pinctrl 7022000.pinctrl: supply vcc-pl not found, using dummy regulator
[    1.743261] sun50i-h616-pinctrl 300b000.pinctrl: supply vcc-pf not found, using dummy regulator
[    1.745095] sun50i-h616-pinctrl 300b000.pinctrl: supply vcc-pc not found, using dummy regulator
:: running early hook [udev]
[    1.827127] mmc0: host does not support reading read-only switch, assuming write-enable
Starting systemd-udevd version 253-1-arch
:: running hook [udev]
:: Triggering uevents...
[    2.319908] sunxi-mmc 4022000.mmc: data error, sending stop command
[    3.323095] sunxi-mmc 4022000.mmc: send stop command failed
Timed out for waiting the udev queue being empty.
:: running hook [keymap]
:: Loading keymap...kbd_mode: KDSKBMODE: Inappropriate ioctl for device
Gdone.
[  245.396524] INFO: task kworker/0:1H:155 blocked for more than 122 seconds.
[  245.403468]       Not tainted 6.7.4 #1
[  245.407221] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  245.415201] INFO: task (udev-worker):172 blocked for more than 122 seconds.
[  245.422175]     

i tested with armbian transpeed 8k618, uboot give me error on dram

Quote

U-Boot SPL 2024.01-armbian (Apr 17 2024 - 03:30:23 +0000)
DRAM:This DRAM setup is currently not supported.

resetting ...

 

 

I also build a version with x96 mate but could not get mmc detected

Quote

U-Boot SPL 2024.01-armbian (Mar 25 2024 - 23:32:47 +0000)
DRAM: 2048 MiB
Trying to boot from MMC1
NOTICE:  BL31: v2.10.2(debug):armbian
NOTICE:  BL31: Built : 23:32:38, Mar 25 2024
NOTICE:  BL31: Detected Allwinner H616 SoC (1823)
NOTICE:  BL31: Found U-Boot DTB at 0x4a09c048, model: X96 Mate
INFO:    ARM GICv2 driver initialized
INFO:    Configuring SPC Controller
INFO:    PMIC: Probing AXP305 on RSB
INFO:    PMIC: aldo1 voltage: 3.300V
INFO:    PMIC: bldo1 voltage: 1.800V
INFO:    PMIC: dcdcd voltage: 1.360V
INFO:    PMIC: dcdce voltage: 3.300V
INFO:    BL31: Platform setup done
INFO:    BL31: Initializing runtime services
INFO:    BL31: cortex_a53: CPU workaround for erratum 855873 was applied
INFO:    BL31: cortex_a53: CPU workaround for erratum 1530924 was applied
INFO:    PSCI: Suspend is unavailable
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x4a000000
INFO:    SPSR = 0x3c9
INFO:    Changed devicetree.
ns16550_serial serial@5000000: pinctrl_select_state_full: uclass_get_device_by_phandle_id: err=-19


U-Boot 2024.01-armbian (Mar 25 2024 - 23:32:47 +0000) Allwinner Technology

CPU:   Allwinner H616 (SUN50I)
Model: X96 Mate
DRAM:  2 GiB
Core:  51 devices, 18 uclasses, devicetree: separate
WDT:   Not starting watchdog@30090a0
MMC:   mmc@4020000: 0, mmc@4022000: 1
Loading Environment from FAT... MMC: no card present
** Bad device specification mmc 0 **
In:    serial@5000000
Out:   serial@5000000
Err:   serial@5000000
Net:   No ethernet found.
starting USB...
Bus usb@5101000: sun4i_usb_phy phy@5100400: External vbus detected, not enabling our own vbus
USB EHCI 1.00
Bus usb@5101400: USB OHCI 1.0
Bus usb@5310000: USB EHCI 1.00
Bus usb@5310400: USB OHCI 1.0
scanning bus usb@5101000 for devices... 1 USB Device(s) found
scanning bus usb@5101400 for devices... 1 USB Device(s) found
scanning bus usb@5310000 for devices... 1 USB Device(s) found
scanning bus usb@5310400 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Autoboot in 1 seconds, press <Space> to stop
MMC: no card present

Device 0: unknown device
No ethernet found.
missing environment variable: pxeuuid
Retrieving file: pxelinux.cfg/00000000
No ethernet found.
Retrieving file: pxelinux.cfg/0000000
No ethernet found.
Retrieving file: pxelinux.cfg/000000
No ethernet found.
Retrieving file: pxelinux.cfg/00000
No ethernet found.
Retrieving file: pxelinux.cfg/0000
No ethernet found.
Retrieving file: pxelinux.cfg/000
No ethernet found.
Retrieving file: pxelinux.cfg/00
No ethernet found.
Retrieving file: pxelinux.cfg/0
No ethernet found.
Retrieving file: pxelinux.cfg/default-arm-sunxi-sunxi
No ethernet found.
Retrieving file: pxelinux.cfg/default-arm-sunxi
No ethernet found.
Retrieving file: pxelinux.cfg/default-arm
No ethernet found.
Retrieving file: pxelinux.cfg/default
No ethernet found.
Config file not found
No ethernet found.
No ethernet found.

 

so i tested run x96 mate on sdcard and boot usb with armbian-transpeed 8k618 , i got inside armbian on console but could no get wifi nor hdmi output (ethernet show, but i didnt test).

then i tested x96 mate on sdcard and boot usb with armbian-96-mate, i also got inside armbian but no wifi, no hdmi output nor ethernet.

 

then i build armbian with patches for t98-616 based on miniarch-tx6s (i change mmc max-frequency so i would not have problem there) , but now i have error for PHY for ethernet, but I based on tx6s dts so i dont know (ethernet work on miniarch-tx6s), i want it to have wifi, ethernet and hdmi output

Quote

U-Boot SPL 2024.07-rc2-armbian (May 17 2024 - 19:28:19 +0000)
DRAM: 2048 MiB
Trying to boot from MMC1
NOTICE:  BL31: v2.10.2(debug):armbian
NOTICE:  BL31: Built : 19:20:14, May 17 2024
NOTICE:  BL31: Detected Allwinner H616 SoC (1823)
NOTICE:  BL31: Found U-Boot DTB at 0x4a0a1238, model: Transpeed T98-616
INFO:    ARM GICv2 driver initialized
INFO:    Configuring SPC Controller
INFO:    PMIC: Probing AXP305 on RSB
WARNING: PMIC: No regulators DT node, skipping setup
INFO:    BL31: Platform setup done
INFO:    BL31: Initializing runtime services
INFO:    BL31: cortex_a53: CPU workaround for erratum 855873 was applied
INFO:    BL31: cortex_a53: CPU workaround for erratum 1530924 was applied
INFO:    PSCI: Suspend is unavailable
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x4a000000
INFO:    SPSR = 0x3c9
INFO:    Changed devicetree.
ns16550_serial serial@5000000: pinctrl_select_state_full: uclass_get_device_by_phandle_id: err=-19


U-Boot 2024.07-rc2-armbian (May 17 2024 - 19:28:19 +0000) Allwinner Technology

CPU:   Allwinner H616 (SUN50I)
Model: Transpeed T98-616
DRAM:  2 GiB
Core:  56 devices, 20 uclasses, devicetree: separate
WDT:   Not starting watchdog@30090a0
MMC:   mmc@4020000: 0, mmc@4022000: 2
Loading Environment from FAT... Unable to use mmc 0:1...
In:    serial@5000000
Out:   serial@5000000
Err:   serial@5000000
Net:   eth_sun8i_emac ethernet@5020000: pinctrl_select_state_full: pinctrl_config_one: err=-38
Could not get PHY for ethernet@5020000: addr 1
No ethernet found.

starting USB...
Bus usb@5101000: sun4i_usb_phy phy@5100400: External vbus detected, not enabling our own vbus
USB EHCI 1.00
Bus usb@5101400: USB OHCI 1.0
Bus usb@5310000: USB EHCI 1.00
Bus usb@5310400: USB OHCI 1.0
scanning bus usb@5101000 for devices... 1 USB Device(s) found
scanning bus usb@5101400 for devices... 1 USB Device(s) found
scanning bus usb@5310000 for devices... 1 USB Device(s) found
scanning bus usb@5310400 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  1 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot/boot.scr
3259 bytes read in 9 ms (353.5 KiB/s)
## Executing script at 4fc00000
U-boot loaded from SD
Boot script loaded from mmc
155 bytes read in 7 ms (21.5 KiB/s)
28414 bytes read in 28 ms (990.2 KiB/s)
Working FDT set to 4fa00000
4203 bytes read in 19 ms (215.8 KiB/s)
Applying kernel provided DT fixup script (sun50i-h616-fixup.scr)
## Executing script at 45000000
18343921 bytes read in 6382 ms (2.7 MiB/s)
23570440 bytes read in 8198 ms (2.7 MiB/s)
Moving Image from 0x40080000 to 0x40200000, end=41910000
## Loading init Ramdisk from Legacy Image at 4ff00000 ...
   Image Name:   uInitrd
   Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)
   Data Size:    18343857 Bytes = 17.5 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 4fa00000
   Booting using the fdt blob at 0x4fa00000
Working FDT set to 4fa00000
   Loading Ramdisk to 48e81000, end 49fff7b1 ... OK
   Loading Device Tree to 0000000048e11000, end 0000000048e80fff ... OK
Working FDT set to 48e11000

Starting kernel ...


t98-616 login: root (automatic login)

 
Login timed
t98-616 login: root (automatic login)

 

uboot.patch kernel-add-dts-t98-616.patch original.log

Link to comment
Share on other sites

Posted (edited)

Kajen, I think that silver/gold chip on your board might be bluetooth/wifi. But I can't make out the number/letters written on it.

Edited by Nick A
Link to comment
Share on other sites

Posted (edited)

Kajan, Your kernel patches need changes.. first you can't use your original android dtb as a dtsi file. Use your u-boot dtb. Make a copy and move it to your kernel. Then you can add changes like wifi. Your dtb already includes a dtsi file

called sun50i-h616.dtsi.

 

Normally, Both u-boot and kernel share the same dtb. But in our case it's different due to the mmc max-frequency and ethernet patches being different. The mmc max-frequency has changed to a lower frequency in the u-boot dts but not in the kernel dts. This is due to u-boot having issues reading mmc during boot. For now it's just a hack. Someone needs to figure out why u-boot is having this problem.

https://github.com/NickAlilovic/build/blob/main/patch/u-boot/u-boot-sunxi/107-sunxi_mmc-dec-f_max-to-12MHz-to-get-emmc-reliable.patch

 

Here's my u-boot and kernel ethernet patches notice the differences.

https://github.com/NickAlilovic/build/blob/main/patch/u-boot/u-boot-sunxi/dts-Transpeed-8K618-T-Enable-Ethernet.patch

https://github.com/NickAlilovic/build/blob/main/patch/kernel/archive/sunxi-6.7/patches.armbian/arm64-dts-allwinner-h618-Transpeed-8k618-T-Enable-Ethernet.patch

 

Looking at your original android dts for wifi I found this.

 

 

+	reg_vcc_wifi {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc-wifi";
+		regulator-min-microvolt = <0x325aa0>;
+		regulator-max-microvolt = <0x325aa0>;
+		gpio = <0x15 0x06 0x12 0x00>;
+		regulator-always-on;
+		enable-active-high;
+		status = "okay";
+		phandle = <0x13>;
+	};
+
+	wifi_pwrseq {
+		compatible = "mmc-pwrseq-simple";
+		clocks = <0x0f 0x01>;
+		clock-names = "ext_clock";
+		pinctrl-names = "default";
+		pinctrl-0 = <0x41>;
+		phandle = <0x14>;
+	};
+
+		mmc@4021000 {
+			compatible = "allwinner,sun50i-h616-mmc\0allwinner,sun50i-a100-mmc";
+			reg = <0x4021000 0x1000>;
+			clocks = <0x02 0x40 0x02 0x3d>;
+			clock-names = "ahb\0mmc";
+			resets = <0x02 0x0f>;
+			reset-names = "ahb";
+			interrupts = <0x00 0x24 0x04>;
+			pinctrl-names = "default";
+			pinctrl-0 = <0x12>;
+			status = "okay";
+			max-frequency = <0x0b71b00>;
+			cap-sd-highspeed;
+			cap-mmc-highspeed;
+			mmc-ddr-3_3v;
+			cap-sdio-irq;
+			#address-cells = <0x01>;
+			#size-cells = <0x00>;
+			vmmc-supply = <0x11>;
+			vqmmc-supply = <0x13>;
+			mmc-pwrseq = <0x14>;
+			bus-width = <0x04>;
+			non-removable;
+
+			wifi@1 {
+				reg = <0x01>;
+				interrupt-parent = <0x15>;
+				interrupts = <0x06 0x0f 0x01>;
+				interrupt-names = "host-wake";
+			};
+		};

 

vmmc-supply = <0x11>;  

0x11 is a phandle that points to dcdce. A regulator that is set to 3.3v.

https://www.rapidtables.com/convert/number/hex-to-decimal.html

0x325aa0 = 3.3v

 

vqmmc-supply = <0x13>;

0x13 phandle points to reg_vcc_wifi. A regulator that is set to 3.3v.

 

So on your box both vmmc-supply and vqmmc-supply are set to 3.3v.

+					dcdce {
+						regulator-always-on;
+						regulator-min-microvolt = <0x325aa0>;
+						regulator-max-microvolt = <0x325aa0>;
+						regulator-name = "vcc-eth-mmc";
+						phandle = <0x11>;
+					};
  
+	reg_vcc_wifi {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc-wifi";
+		regulator-min-microvolt = <0x325aa0>;
+		regulator-max-microvolt = <0x325aa0>;
+		gpio = <0x15 0x06 0x12 0x00>;
+		regulator-always-on;
+		enable-active-high;
+		status = "okay";
+		phandle = <0x13>;
+	};

 

 

Looks similar to OrangePi-Zero2. You can modify the code and have it work on your box. OrangePi-Zero2 uses 1.8v for vqmmc-supply instead of 3.3v.

 

So you don't need reg_vcc_wifi_io with 1.8v.  Set vmmc-supply to reg_dcdce and  vqmmc-supply to reg_vcc_wifi. reg_dcdce is already defined in your dtb file.

+			reg_dcdce: dcdce {
+				regulator-boot-on;
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-name = "vcc-eth-mmc";
+			};

 

Your gpio looks the same.

0x12 = 18

gpio = <0x15 0x06 0x12 0x00>;

reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>; /* PG18 */

 

 

 

Have your tried OrangePi-Zero2 images? 

 

https://github.com/armbian/build/blob/main/patch/kernel/archive/sunxi-6.7/patches.armbian/arm64-dts-h616-add-wifi-support-for-orange-pi-zero-2.patch

 

+
+	reg_vcc33_wifi: vcc33-wifi {
+		/* Always on 3.3V regulator for WiFi and BT */
+		compatible = "regulator-fixed";
+		regulator-name = "vcc33-wifi";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-always-on;
+		vin-supply = <&reg_vcc5v>;
+	};
+
+	reg_vcc_wifi_io: vcc-wifi-io {
+		/* Always on 1.8V/300mA regulator for WiFi and BT IO */
+		compatible = "regulator-fixed";
+		regulator-name = "vcc-wifi-io";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		regulator-always-on;
+		vin-supply = <&reg_vcc33_wifi>;
+	};
+
+	wifi_pwrseq: wifi-pwrseq {
+		compatible = "mmc-pwrseq-simple";
+		clocks = <&rtc 1>;
+		clock-names = "osc32k-out";
+		reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>; /* PG18 */
+		post-power-on-delay-ms = <200>;
+	};

+&mmc1 {
+	vmmc-supply = <&reg_vcc33_wifi>;
+	vqmmc-supply = <&reg_vcc_wifi_io>;
+	mmc-pwrseq = <&wifi_pwrseq>;
+	bus-width = <4>;
+	non-removable;
+	mmc-ddr-1_8v;
+	status = "okay";
+};
+

 

Edited by Nick A
Link to comment
Share on other sites

Posted (edited)

the dtb that i used was from tx6s on miniarch, also sometimes it would have error on mmc after boot on armbian , so the patch also i had to apply on kernel no only on uboot to get it stable (i didnt see error on uboot so maybe it is no need on uboot)

the wifi & bt chip is 339S0209, they were also use in iphone 5c/5s

 

i tested armbian Orange Pi Zero 2, dont detect mmc..., eth1 detected, got mac but also error on PHY beside it showed only 1gb ram

 

Quote

U-Boot SPL 2024.04-armbian (May 28 2024 - 03:39:33 +0000)
DRAM: 1024 MiB
Error, wrong i2c adapter 1 max 1 possible
Trying to boot from MMC1
NOTICE:  BL31: v2.10.2(debug):armbian
NOTICE:  BL31: Built : 03:47:34, May 27 2024
NOTICE:  BL31: Detected Allwinner H616 SoC (1823)
NOTICE:  BL31: Found U-Boot DTB at 0x4a0b4ef0, model: OrangePi Zero2
INFO:    ARM GICv2 driver initialized
INFO:    Configuring SPC Controller
INFO:    PMIC: Probing AXP305 on RSB
INFO:    PMIC: aldo1 voltage: 3.300V
INFO:    PMIC: aldo2 voltage: 3.300V
INFO:    PMIC: aldo3 voltage: 3.300V
INFO:    PMIC: bldo1 voltage: 1.800V
INFO:    PMIC: bldo2 voltage: 1.800V
INFO:    PMIC: dcdcd voltage: 1.500V
INFO:    PMIC: dcdce voltage: 3.300V
INFO:    BL31: Platform setup done
INFO:    BL31: Initializing runtime services
INFO:    BL31: cortex_a53: CPU workaround for erratum 855873 was applied
INFO:    BL31: cortex_a53: CPU workaround for erratum 1530924 was applied
INFO:    PSCI: Suspend is unavailable
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x4a000000
INFO:    SPSR = 0x3c9
INFO:    Changed devicetree.
ns16550_serial serial@5000000: pinctrl_select_state_full: uclass_get_device_by_phandle_id: err=-19


U-Boot 2024.04-armbian (May 28 2024 - 03:39:33 +0000) Allwinner Technology

CPU:   Allwinner H616 (SUN50I)
Model: OrangePi Zero2
DRAM:  1 GiB
Core:  54 devices, 22 uclasses, devicetree: separate
WDT:   Not starting watchdog@30090a0
MMC:   mmc@4020000: 0
Loading Environment from FAT... MMC: no card present
** Bad device specification mmc 0 **
In:    serial@5000000
Out:   serial@5000000
Err:   serial@5000000
Allwinner mUSB OTG (Peripheral)
Net:   Could not get PHY for ethernet@5020000: addr 1
using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
MAC de:ad:be:ef:00:01
HOST MAC de:ad:be:ef:00:00
RNDIS ready
eth1: usb_ether
starting USB...
Bus usb@5200000: USB EHCI 1.00
Bus usb@5200400: USB OHCI 1.0
scanning bus usb@5200000 for devices... 1 USB Device(s) found
scanning bus usb@5200400 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  1 0
MMC: no card present

Device 0: unknown device
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
No ethernet found.
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
missing environment variable: pxeuuid
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
Retrieving file: pxelinux.cfg/00000000
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
No ethernet found.
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
Retrieving file: pxelinux.cfg/0000000
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
No ethernet found.
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
Retrieving file: pxelinux.cfg/000000
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
No ethernet found.
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
Retrieving file: pxelinux.cfg/00000
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
No ethernet found.
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
Retrieving file: pxelinux.cfg/0000
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
No ethernet found.
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
Retrieving file: pxelinux.cfg/000
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
No ethernet found.
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
Retrieving file: pxelinux.cfg/00
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
No ethernet found.
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
Retrieving file: pxelinux.cfg/0
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
No ethernet found.
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
Retrieving file: pxelinux.cfg/default-arm-sunxi-sunxi
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
No ethernet found.
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
Retrieving file: pxelinux.cfg/default-arm-sunxi
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
No ethernet found.
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
Retrieving file: pxelinux.cfg/default-arm
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
No ethernet found.
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
Retrieving file: pxelinux.cfg/default
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
No ethernet found.
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
Config file not found
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
No ethernet found.
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
No ethernet found.
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
mdio_register: non unique device name 'ethernet@5020000'
Could not get PHY for ethernet@5020000: addr 1
=>

 

I also tested with the patch for ethernet and phy and rebuild with tx6s dts file instand of the extrated dtb, i also i had to get some soc from dtb since those are  added with patch from miniarch(I did not want to read and edit the original patches)

 

Quote

U-Boot SPL 2024.04-armbian (May 27 2024 - 03:47:47 +0000)
DRAM: 2048 MiB
Trying to boot from MMC1
NOTICE:  BL31: v2.10.2(debug):armbian
NOTICE:  BL31: Built : 03:47:34, May 27 2024
NOTICE:  BL31: Detected Allwinner H616 SoC (1823)
NOTICE:  BL31: Found U-Boot DTB at 0x4a0a09f8, model: Transpeed T98-616
INFO:    ARM GICv2 driver initialized
INFO:    Configuring SPC Controller
INFO:    PMIC: Probing AXP305 on RSB
WARNING: PMIC: No regulators DT node, skipping setup
INFO:    BL31: Platform setup done
INFO:    BL31: Initializing runtime services
INFO:    BL31: cortex_a53: CPU workaround for erratum 855873 was applied
INFO:    BL31: cortex_a53: CPU workaround for erratum 1530924 was applied
INFO:    PSCI: Suspend is unavailable
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x4a000000
INFO:    SPSR = 0x3c9
INFO:    Changed devicetree.
ns16550_serial serial@5000000: pinctrl_select_state_full: uclass_get_device_by_phandle_id: err=-19


U-Boot 2024.04-armbian (May 27 2024 - 03:47:47 +0000) Allwinner Technology

CPU:   Allwinner H616 (SUN50I)
Model: Transpeed T98-616
DRAM:  2 GiB
Core:  56 devices, 20 uclasses, devicetree: separate
WDT:   Not starting watchdog@30090a0
MMC:   mmc@4020000: 0, mmc@4022000: 2
Loading Environment from FAT... Unable to use mmc 0:1...
In:    serial@5000000
Out:   serial@5000000
Err:   serial@5000000
Net:   Could not get PHY for ethernet@5020000: addr 1
No ethernet found.

starting USB...
Bus usb@5101000: sun4i_usb_phy phy@5100400: External vbus detected, not enabling our own vbus
USB EHCI 1.00
Bus usb@5101400: USB OHCI 1.0
Bus usb@5310000: USB EHCI 1.00
Bus usb@5310400: USB OHCI 1.0
scanning bus usb@5101000 for devices... 1 USB Device(s) found
scanning bus usb@5101400 for devices... 1 USB Device(s) found
scanning bus usb@5310000 for devices... 1 USB Device(s) found
scanning bus usb@5310400 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  1 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot/boot.scr
3259 bytes read in 9 ms (353.5 KiB/s)
## Executing script at 4fc00000
U-boot loaded from SD
Boot script loaded from mmc
156 bytes read in 7 ms (21.5 KiB/s)
35516 bytes read in 31 ms (1.1 MiB/s)
Working FDT set to 4fa00000
4203 bytes read in 20 ms (205.1 KiB/s)
Applying kernel provided DT fixup script (sun50i-h616-fixup.scr)
## Executing script at 45000000
10932957 bytes read in 3807 ms (2.7 MiB/s)
23570440 bytes read in 8199 ms (2.7 MiB/s)
Moving Image from 0x40080000 to 0x40200000, end=41910000
## Loading init Ramdisk from Legacy Image at 4ff00000 ...
   Image Name:   uInitrd
   Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)
   Data Size:    10932893 Bytes = 10.4 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 4fa00000
   Booting using the fdt blob at 0x4fa00000
Working FDT set to 4fa00000
   Loading Ramdisk to 49592000, end 49fff29d ... OK
   Loading Device Tree to 0000000049520000, end 0000000049591fff ... OK
Working FDT set to 49520000

Starting kernel ...

[    2.378764] thermal thermal_zone0: gpu-thermal: critical temperature reached, shutting down
[    2.387207] reboot: HARDWARE PROTECTION shutdown (Temperature too high)
[    2.422608] reboot: Power down

 

i got gpu-thermal critical temp....( i could also just get gpu-thermal directly from dtb and test)

 

i will read the patches to see which one i will add, the last time i tried to add all i got error on git, so i will have to select and edit those i need

 

or base on orange pi zero 2 dts, since tx6s dts depend on miniarch patches and those i have to carefuiy select and edit or it would cause git conflicts

 

Edited by Kajen
Link to comment
Share on other sites

Posted (edited)

It's weird that you are booting further with tx6s but it shows your pmic isn't setup. I guess it has something to do with axp305 being defined in &r_i2c and &r_rsb.  In &r_rsb it's defined as axp305: pmic@745. I guess without these changes you probably introduce more errors.

INFO:    PMIC: Probing AXP305 on RSB
WARNING: PMIC: No regulators DT node, skipping setup
+&r_i2c {
+	status = "okay";
+
+	axp305_1: pmic@36 {
+		compatible = "x-powers,axp305", "x-powers,axp805",
+		"x-powers,axp806";
+		reg = <0x36>;
+
+		/* dummy interrupt to appease the driver for now */
+		interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-controller;
+		#interrupt-cells = <1>;
+	};
+};

 

But then axp305 goes back to normal in the kernel dtb and it's only defined once. Probably a uboot issue.

https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.6/files/0632-arm64-dts-allwinner-h616-add-Tanix-TX6s-TVbox.patch

 

 

Also, there's two Ethernet devices for H616

emac0 uses the external Ethernet chip. While, emac1 uses the SOC internal Ethernet phy called AC200.

 

OrangePi-Zero2: (Uses external Ethernet chip)

ethernet0 = &emac0;

 

tx6s: (Miniarch uses emac1 but in your uboot.patch you have ethernet0 set to emac0!) I think this is where you are having problems.

ethernet0 = &emac1;

 

H618 is similar to H616 but it now has AC300 as the Ethernet phy.

 

Edited by Nick A
Link to comment
Share on other sites

Posted (edited)

01_dtbdump_,sun50iw9.dtbi got dtb from the android version, i have to use imgRePacker and  with the https://github.com/PabloCastellano/extract-dtb boot.fex

 

Quote

    aliases {
        serial0 = "/soc@03000000/uart@05000000\0/soc@03000000/uart@05000000";
        serial1 = "/soc@03000000/uart@05000400\0/soc@03000000/uart@05000400";
        serial2 = "/soc@03000000/uart@05000800\0/soc@03000000/uart@05000800";
        serial3 = "/soc@03000000/uart@05000c00\0/soc@03000000/uart@05000c00";
        serial4 = "/soc@03000000/uart@05001000\0/soc@03000000/uart@05001000";
        serial5 = "/soc@03000000/uart@05001400\0/soc@03000000/uart@05001400";
        twi0 = "/soc@03000000/twi@0x05002000\0/soc@03000000/twi@0x05002000";
        twi1 = "/soc@03000000/twi@0x05002400\0/soc@03000000/twi@0x05002400";
        twi2 = "/soc@03000000/twi@0x05002800\0/soc@03000000/twi@0x05002800";
        twi3 = "/soc@03000000/twi@0x05002c00\0/soc@03000000/twi@0x05002c00";
        twi4 = "/soc@03000000/twi@0x05003000\0/soc@03000000/twi@0x05003000";
        twi5 = "/soc@03000000/twi@0x07081400\0/soc@03000000/twi@0x07081400";
        spi0 = "/soc@03000000/spi@05010000\0/soc@03000000/spi@05010000";
        spi1 = "/soc@03000000/spi@05011000\0/soc@03000000/spi@05011000";
        ir0 = "/soc@03000000/s_cir@07040000\0/soc@03000000/s_cir@07040000";
        pcie = "/soc@03000000/pcie@0x05400000\0/soc@03000000/pcie@0x05400000";
        scr0 = "/soc@03000000/smartcard@0x05005000\0/soc@03000000/smartcard@0x05005000";
        gmac0 = "/soc@03000000/eth@05020000\0/soc@03000000/eth@05020000";
        gmac1 = "/soc@03000000/eth@05030000\0/soc@03000000/eth@05030000";
        global_timer0 = "/soc@03000000/timer@03009000\0/soc@03000000/timer@03009000";
        mmc0 = "/soc@03000000/sdmmc@04020000\0/soc@03000000/sdmmc@04020000";
        mmc2 = "/soc@03000000/sdmmc@04022000\0/soc@03000000/sdmmc@04022000";
        nand0 = "/soc@03000000/nand0@04011000\0/soc@03000000/nand0@04011000";
        disp = "/soc@03000000/disp@01000000\0/soc@03000000/disp@01000000";
        lcd0 = "/soc@03000000/lcd0@01c0c000\0/soc@03000000/lcd0@01c0c000";
        lcd1 = "/soc@03000000/lcd1@01c0c001\0/soc@03000000/lcd1@01c0c001";
        hdmi = "/soc@03000000/hdmi@06000000\0/soc@03000000/hdmi@06000000";
        pwm = "/soc@03000000/pwm@0300a000\0/soc@03000000/pwm@0300a000";
        tv0 = "/soc@03000000/tv0@01c94000\0/soc@03000000/tv0@01c94000";
        ac200 = "/soc@03000000/ac200\0/soc@03000000/ac200";
        boot_disp = "/soc@03000000/boot_disp\0/soc@03000000/boot_disp";
        pmu0 = "/soc@03000000/twi@0x07081400/pmu\0/soc@03000000/twi@0x07081400/pmu";
        standby_param = "/soc@03000000/twi@0x07081400/pmu/standby_param\0/soc@03000000/twi@0x07081400/pmu/standby_param";
        linux,phandle = <0x17a>;
        phandle = <0x17a>;
    };

 

it is much more completed than tanix tx6s, in android it says it was based on kernel 4.9, so i dont know if i can use as it or do I need to edit?

 

another question I have, why no use hdmi output on uboot? there other boards that have it, it would make debug easier...

devicetree.dts

Edited by Kajen
Link to comment
Share on other sites

Posted (edited)

Your android version of DTS has to be converted to the mainline linux DTS. I gave you enough information to get your box Ethernet running and maybe wifi. You're Ethernet is an easy fix.  Change 0 to 1.

 

I'm confused!! where did you get the DTS in your patches? The first link "01_dtbdump_,sun50iw9.dtb" didn't work. "devicetree.dts" says you have axp1530. 

 

If your box is a axp1530. I would use my transpeed build but change the dram settings in transpeed-8k618-t_defconfig. Use this tool to extract the dram settings. I think you can extract it using boot0. I hex edited my boot0 to get the settings. (post 8 on the first page.)

https://github.com/apritzel/sunxi-fw

 

Do you have a dtso partition? (DTS overlay)

 

I'm guessing hdmi might be a pain to port over to u-boot. I haven't looked into it.

Edited by Nick A
Link to comment
Share on other sites

the transpeed-8k618-t build give me dram error, but I boot with x96 mate u-boot and then to usb boot to armbian transpeed-8k618-t and it work, but wlan didnt work, on dts says axp1530, but board is axp305, maybe they are compatible

 

I already tested emac1, it works, but i need to check, i get gpu thermal critcal on armbian, maybe one of the change i set

Link to comment
Share on other sites

Posted (edited)

I'm thinking the DTS that you extracted is a DTS for axp1530 but there might be an overlay that converts it back to axp305. If not then axp305 is compatible with axp1530 and all you have to do is change the dram settings in transpeed-8k618-t.defconfig. In this case you have all my warpme patches. The chip on your board does say axp305. So it's confusing why your android DTS has axp1530.

 

Can you look for this partition and copy the dtbo_a file and extract it?

dtbo_a -> /dev/block/mmcblk0p21

Edited by Nick A
Link to comment
Share on other sites

there dram setting on dtb

 

Quote

dram {
        compatible = "allwinner,dram";
        clocks = <0xd8>;
        clock-names = "pll_ddr";
        dram_clk = <0x288>;
        dram_type = <0x03>;
        dram_zq = <0x3f3fdd>;
        dram_odt_en = <0x01>;
        dram_para1 = <0x30fb>;
        dram_para2 = <0x00>;
        dram_mr0 = <0x840>;
        dram_mr1 = <0x04>;
        dram_mr2 = <0x08>;
        dram_mr3 = <0x00>;
        dram_tpr0 = <0xc0000c05>;
        dram_tpr1 = <0x00>;
        dram_tpr2 = <0x00>;
        dram_tpr3 = <0x00>;
        dram_tpr4 = <0x00>;
        dram_tpr5 = <0x00>;
        dram_tpr6 = <0x33808080>;
        dram_tpr7 = <0x00>;
        dram_tpr8 = <0x00>;
        dram_tpr9 = <0x00>;
        dram_tpr10 = <0x2f0007>;
        dram_tpr11 = <0xffffdddd>;
        dram_tpr12 = <0xfedf7557>;
        dram_tpr13 = <0x40>;
        linux,phandle = <0x17b>;
        phandle = <0x17b>;
        device_type = "dram";
        dram_dx_odt = <0x3030303>;
        dram_dx_dri = <0xe0e0e0e>;
        dram_ca_dri = <0x1c12>;
        dram_mr4 = <0x00>;
        dram_mr5 = <0x00>;
        dram_mr6 = <0x00>;
        dram_mr11 = <0x00>;
        dram_mr12 = <0x00>;
        dram_mr13 = <0x00>;
        dram_mr14 = <0x00>;
        dram_mr16 = <0x00>;
        dram_mr17 = <0x00>;
        dram_mr22 = <0x00>;
    };

 

but with tx6s dram setting i dont have error

 

Quote

CONFIG_DRAM_SUN50I_H616_DX_ODT=0x03030303
CONFIG_DRAM_SUN50I_H616_DX_DRI=0x0e0e0e0e
CONFIG_DRAM_SUN50I_H616_CA_DRI=0x00001c12
CONFIG_DRAM_SUN50I_H616_ODT_EN=0x00000001
CONFIG_DRAM_SUN50I_H616_TPR0=0xc0000c05
CONFIG_DRAM_SUN50I_H616_TPR2=0x00000000
CONFIG_DRAM_SUN50I_H616_TPR10=0x2f0007
CONFIG_DRAM_SUN50I_H616_TPR11=0xffffdddd
CONFIG_DRAM_SUN50I_H616_TPR12=0xfedf7557

 

so, right now I want to see if i can enable cpu-idle-state on uboot, it look easier to implement on uboot, so I can know how to enable hdmi

 

Quote

&cpus {
    idle-states {
        entry-method = "arm,psci";
        CPU_SLEEP0: cpu-sleep-0 {
            compatible = "arm,idle-state";
            arm,psci-suspend-param = <0x10000>;
            entry-latency-us = <0x2e>;
            exit-latency-us = <0x3b>;
            min-residency-us = <0xdf2>;
            local-timer-stop;
            status = "okay";
        };
    };
};

&cpu0 {
    cpu-idle-states = <&CPU_SLEEP0>;
};

&cpu1 {
    cpu-idle-states = <&CPU_SLEEP0>;
};

&cpu2 {
    cpu-idle-states = <&CPU_SLEEP0>;
};

&cpu3 {
    cpu-idle-states = <&CPU_SLEEP0>;
};

but it give error "Error: arch/arm/dts/.sun50i-h616-transpeed-t98-616.dtb.pre.tmp:82.1-6 Label or path cpus not found"

Link to comment
Share on other sites

Hi guys, first of all I want to thanks for Nike efforts and care with all people.

I Bought a Transpeed M98 plus and need your help. usually don't ask questions in topics, because almost always just have the answer in already posted in past messengers, but I read all the topic and tried everything relative to my box, but cant boot over SD Card ou USB stick.

If I power on my box pressing the bottom behind the P2 jack, The led is just red and no image in screen, In Uart there are none this way. If I boot no pressing the bottom, the Uart shows the logo, but doesn't appear the box try to boot from SD, it starts directly from internal memory.

I had same problem in a RK322x box and solved it installing a new loader in it, but I see no similar thing for the Transpeed M98 Plus.

I miss anything? You or other could help me with ant tips?

 

P.S. I'm Brazilian, and my English is not so good, sorry any mistake.

Link to comment
Share on other sites

Posted (edited)

Thanks for fast reply. I already tried it. My box didn't boot over SD. I tried either boot with an Android burned in PhoenixCard_v4.2.7 and nothing happens. Maybe I got a box with some blocked firmware. The mine is An Android TV. I enabled developer options without problem and turned on the USB debugging.

I could pull the dts files over adb as you teach, but cant boot over sd card or pen-drive. The SD is working and I could see it in Android and The Android could write its default folders in it.

There are any way to change its boot order.

Please, see my serial log attached With Armbian SD inserted and Without it I didn't see any important difference.

SerialLog-SD_Armbian.txt SerialLog_AndroidWO SD.txt

Edited by Rodrigo Campos
Link to comment
Share on other sites

the transpeed m98 have sunxi-secure, maybe that  give you problems, I found it in a Russian forum, you can try to flash with Phoenix Usb another version (any tv box with h618) and then try to boot with sd

Link to comment
Share on other sites

Thanks kajen for your reply. I read this Russian forum and tried boot with the firmware posted there burned with Phoenixcard without sucess. The Phoenix Usb and Phoenix suit didn't recognize my box, because none driver I tried work in my notebook. Tomorrow I'll try another computer or maybe with Linux. Anyway, I'm afraid of brick my box with it...

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