Adding OpenWrt support for Xiaomi AX3600 (Part 1)

Hm.. I enabled it, and the DL is hitting 900Mbits with 97-99% single core load. Interestingly enough, it helped the uplink much more: same speed (320Mbits), but with much lower CPU load: single core 10-15% compared to previous 50%.

Should I try packet steering as well?

1 Like

Sure, give it a go.
I don't think it will be able to help that much as IRQ-s are gonna be hitting CPU0 all the time

Yep, tried it, nothing changed, same result as with SW offload only.

This is the development thread.

For a manual, the device's wiki is really good:
https://openwrt.org/inbox/toh/xiaomi/xiaomi_ax3600
This explains initial setup with OpenWRT.

For more mundane setup questions you might want the head over to the user thread:
https://forum.openwrt.org/t/xiaomi-ax3600-int-firmware

Hi thanks

Now I have access to SSH...

To compile a new image where could I start? which one is the most recommendable?

This is not the right thread for this type of question.

For a very similar question, take a look at the user thread:
Xiaomi AX3600 INT firmware - #616 by Herald

The int thread is not an openwrt user's thread but a stock fw user's/tinkerer's thread

Thanks for the info. Please provide a more appropriate link.

I guess as you seem to be the only one that is disturbed by such posts, we can keep it here, especially as there is no ready to use image for normal users and every use will kind of end in mild development it's too early for a user's thread for ax3600 unless someone opens one of course.

That doesn't bother me at all.

I did some writeups based on my experience(s) and posted them in what I believed to be the correct venue.
Xiaomi AX3600 INT firmware - #614 by Herald (Addenda for enabling SSH)
Xiaomi AX3600 INT firmware - #616 by Herald (Additional info for flashing+Image URL)
Xiaomi AX3600 INT firmware - #622 by Herald (Setting region)
Xiaomi AX3600 INT firmware - #624 by Herald (Back to OEM firmware)

Most of these are more user friendly (=verbose) than I expected a dev channel to be excited about. If this sort of content is welcome here, I could have been on the wrong track all along.

3 Likes

@robimarko one more thing about 5.15: it seems the reserved memory is even more than it was before: now its 366MB total available, on 5.10 it was 376MB without the 512MB profile, and 407MB with the 512 profile. So even compared to the previous non-512MB situation we lost another 10MB it seems.

is it possible to enable github actions for the new-new branch?

@dchard Well, I have no idea where those 10MB went.
Here is the 5.10 reserved memory:

reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		nss@40000000 {
			no-map;
			reg = <0x0 0x40000000 0x0 0x01000000>;
		};

		tzapp: tzapp@4a400000 {
			no-map;
			reg = <0x0 0x4a400000 0x0 0x00200000>;
		};


		uboot@4a600000 {
			no-map;
			reg = <0x0 0x4a600000 0x0 0x00400000>;
		};

		sbl@4aa00000 {
			no-map;
			reg = <0x0 0x4aa00000 0x0 0x00100000>;
		};

		smem_region: smem@4ab00000 {
			no-map;
			reg = <0x0 0x4ab00000 0x0 0x00100000>;
		};

		tz@4ac00000 {
			no-map;
			reg = <0x0 0x4ac00000 0x0 0x00400000>;
		};

		q6_region: wcnss@4b000000 {
			no-map;
			reg = <0x0 0x4b000000 0x0 0x05f00000>;
		};

		q6_etr_region: q6_etr_dump@50f00000 {
			no-map;
			reg = <0x0 0x50f00000 0x0 0x00100000>;
		};

		m3_region: m3_dump@51000000 {
			no-map;
			reg = <0x0 0x51000000 0x0 0x100000>;
		};

	};

5.15:

reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		nss@40000000 {
			no-map;
			reg = <0x0 0x40000000 0x0 0x01000000>;
		};

		tzapp: tzapp@4a400000 {
			no-map;
			reg = <0x0 0x4a400000 0x0 0x00200000>;
		};


		uboot@4a600000 {
			no-map;
			reg = <0x0 0x4a600000 0x0 0x00400000>;
		};

		sbl@4aa00000 {
			no-map;
			reg = <0x0 0x4aa00000 0x0 0x00100000>;
		};

		smem_region: smem@4ab00000 {
			no-map;
			reg = <0x0 0x4ab00000 0x0 0x00100000>;
		};

		tz@4ac00000 {
			no-map;
			reg = <0x0 0x4ac00000 0x0 0x00400000>;
		};

		q6_region: wcnss@4b000000 {
			no-map;
			reg = <0x0 0x4b000000 0x0 0x05f00000>;
		};

		q6_etr_region: q6_etr_dump@50f00000 {
			no-map;
			reg = <0x0 0x50f00000 0x0 0x00100000>;
		};

		m3_dump@51000000 {
			no-map;
			reg = <0x0 0x51000000 0x0 0x100000>;
		};
	};

They should be exactly the same.

@luxus No, its not meant to be used, it will be pushed to the ipq807x-5.15 once ready

1 Like

great then i'm looking forward when you push the changes and add the build-action
thanks for answering and all your amazing work

Hello everyone and thank you for amazing work.
I compiled 5.10 build in WSL and installed it over my 2 AX3600.
One is used for AP and the other as router.
I'm only using basic functions like routing, dhcp reservation and PAT.

It seems I don't have memory leaks at the moment.

The only option I added manually is :

option he_bss_color '8'

over the wireless network configuration, but it semms 5Ghz AX not working at the moment.

I am using AX for 2.4Ghz / 40Mz and AC 5Ghz / 160Mz.

How i'll know when I can try 5.15 ? Can I flash it via sysupgrade?
Thanks a lot.

Does it work in 160 Mhz? When I set the 5 Ghz band to it radio disables. in 80 there isn't any problem

You have to set the wireless region.

2 Likes

I have some problems with the stock firmware. I have seen this page: https://openwrt.org/inbox/toh/xiaomi/xiaomi_ax3600 so far so good.

What branch I should use?

Do you have problems with your network? Have you seen the network card interface settings? Is the default initialized MAC address the same for each network port? I found this problem. When I changed it to a different mac, the network was normal.

The issue is that it doesn't happen if initramfs is used, only once flashed.
The MAC-s remain the same as assigned by the bootloader, so WAN has a different MAC than the LAN ports