Adding OpenWrt support for Xiaomi AX3600 (Part 1)

Will push it to GitHub, it's been local so far.

Cheers, I'll try get mine back to a good state tomorrow.

I wouldn't be totally suppried if 5.9 is broken even on the hk01 dev platforms (as the ax3600 used to boot using that DTS anyway)

@robimarko things that can prevent from boot can be various... one can be that it's just no serial output....
But from many testing on ipq806x if some reset or register are set badly the router just locks and doesn't power on at all (no output after kernel load)
I would try to disable pci (if it's enabled in the dts and try to enable the bare minimum) (i had the same problem when i was working on some fix for pcie)

Looks like 5.9 still lacks the proper PCIe gen 3 phy changes for this platform. :frowning:

still it could be that they merged some code that broke support... The next thing i would check is the gcc driver

@Ansuel There is just bare minimum in the DTS, no PCI-e etc.
Even if they panicked the kernel earlycon should have shown that, I mean its only purpose is instant debugging even in lowest kernel boot stages.

@Apache14 Yeah, PCI-E 3.0 was never merged, but its not hard to include it manually.

Don't know if they changed something but in my case or r7800 it happen that the kernel crashed as soon as it was loaded by uboot and no serial output. (no panic nothing at all)

Hm, that is weirdly similar.
But the thing is that U-boot will load the kernel and execute it and it does not reboot or panic in any way.
Most likely the watchdog is not enabled.

I will try booting the self decompressing zImage, as I have a case at work in which uImage wont boot throught U-boot, it also gets stuck after starting kernel while zImage works without a issue.
Thats if U-boot used has bootz command

Anyway if you want to do a quick try what they added to ipq807x gcc driver is the pcie clk driver... I would test to revert them. (it should't change anything since they are not registered but if i'm not wrong, linux try to enables them is IGNORE_UNUSED is not set in the clk flags)

Ahh, it looks like there is no zImage on ARM64.
So that idea goes down the toilet

I honestly dont think those make any difference as they are not registered, even if they were booting will fail later and earlycon will work.

Even worse, bootloader has no support for booting ELF images so I cant boot raw kernels.
Simply using the HK01 DTB also does not work.

@Apache14 Here is the current tree:

No luck with the RAX120 either, it stucks after "Jumping to AARCH64 kernel via monitor"

I had a look in the code and in the proposed patches and there are still a lot of things missing in 5.9.
Remoteproc pil support for example.

And i found this entry regarding a hang related to the pci power up.
Maybe worth a try?

edit:
Hmm, qcom pci driver isn't even selected in the kernel config, so this shouldn't be the root cause.

I know there is tons of stuff missing, there is no point in adding them if it does not boot.

PCI is not called at all so PHY never gets called as well.
This is gotta be something low level

btw, RAX120 seems to have bootelf support, so i could try that later.

Is it just booting the vmlinux-initramfs.elf image?

Yeah, you could try booting that

hello!
I have a question, after I root the router and get ssh connection.
witch version of Openwrt should I burn?

Come on seriously, can you guys stop asking the same questions over and over.
Just use the damn search, there is no working OpenWrt for AX3600, its all WIP.

3 Likes

right, sorry! :slight_smile:

bootelf doesn't work, i only get

Starting application at 0x10000000 ...

and a few seconds later a reset :frowning:

Hm, then something really low level is broken.
Have you baked the earlycon into CMDLINE?

not yet. Can you post the cmdline?