MAGICSEE N5 Max - Amlogic S905X2

Recommended Posts

Armbian is a community driven open source project. Do you like to contribute your code?



 I have been playing with this unit again, but no success. I tried some changes in dtb. RTL8211F is recognized by the dwmac driver but I think it's not initialized properly. Interface came up, but no link and no rx/tx.

Could someone explain what is the "mc_val" entry in the dtb of the amlogic 3.14/4.9 kernel?



Link to post
Share on other sites

Just a quick followup: I posted the `running` note linked above quite a few months back.


I downloaded the current image and tested most of the dtbs contained. None of them give me working ethernet, and wifi is flakey in all cases. The `-g12a-` dtbs seem to work best and I think the `gt1-mini-a` dtb is closest. 


Ethernet is visible with the gt1 dtb (and most of the g12a dtbs), but I can’t get it to talk to the network even with a static IP configuration. 


The previously-working khadas-vim3 dtb has been replaced by two more specific dtbs (one for the s922 SOC and one for the a311 SOC), neither of which work. 


If there are some instructions or reading material for coding dts files, I’m happy to have a go at it: I have some time at the moment. I can kind-of extract details from the Armbian image, but not sure how to use them.

Link to post
Share on other sites



here is the original dts coming:

ethernet@ff3f0000 {
		compatible = "amlogic, g12a-eth-dwmac\0snps,dwmac";
		reg = <0xff3f0000 0x10000 0xff634540 0x08 0xff64c000 0xa0>;
		reg-names = "eth_base\0eth_cfg\0eth_pll";
		interrupts = <0x00 0x08 0x01>;
		interrupt-names = "macirq";
		status = "okay";
		clocks = <0x02 0x38>;
		clock-names = "ethclk81";
		pll_val = <0x9c0040a 0x927e0000 0xac5f49e5>;
		analog_val = <0x20200000 0xc000 0x23>;
		pinctrl-names = "internal_eth_pins\0internal_gpio_pins";
		pinctrl-0 = <0x11>;
		pinctrl-1 = <0x12>;
		mc_val = <0x4be04>;
		internal_phy = <0x01>;
		phandle = <0x98>;
        internal_eth_pins {
			phandle = <0x11>;

			mux {
				groups = "eth_link_led\0eth_act_led";
				function = "eth";

		internal_gpio_pins {
			phandle = <0x12>;

			mux {
				groups = "GPIOZ_14\0GPIOZ_15";
				function = "gpio_periphs";

		external_eth_pins {
			phandle = <0xbc>;

			mux {
				groups = "eth_mdio\0eth_mdc\0eth_rgmii_rx_clk\0eth_rx_dv\0eth_rxd0\0eth_rxd1\0eth_rxd2_rgmii\0eth_rxd3_rgmii\0eth_rgmii_tx_clk\0eth_txen
				function = "eth";
				drive-strength = <0x03>;

I think external_eth_pins is not relevant.

I can't translate mc_val, pll_val and analog_val to the mainline dts ...

Link to post
Share on other sites

So I’ve done a bit more experimentation and checking with my N5 Max. I tested two g12a dtbs (g12a-gt1-mini-a and g12a-tx5-max) and an older g12b dtb (g12b-khadas-vim3). A few things to note:

  • Ethernet works on the khadas dtb, but not the g12a dtbs.
  • The g12a dtbs load the HiSilicon and Intel ethernet drivers, whereas the khadas dtb does not (the khadas seems to use a default driver). 
  • According to the dmesg log, the khadas DTB only fires up 2 of the 4 CPUs. I think because it is meant for a different CPU (Amlogic S912 from memory), 
  • Wifi on the g12a dtbs only works for a short while, then fails with sdio errors. The sdio issues are exacerbated when you connect via ssh: the ssh session eventually hangs and seems to cause infinite errors going to dmesg. 
  • As noted previously, wifi doesn’t work on the khadas dtb. I tried loading the brcmfmac driver (which is the one sort-of working for the other dtb) but still can’t get a wlan0 device to appear.

Happy to share the dmesg and lsmod output for these three dtbs on the N5 Max if anyone wants to take a look. I’ve copied the image with khadas dtb onto the emmc and am using it. Not perfect, but workable. 

Link to post
Share on other sites
  • Werner locked this topic
This topic is now closed to further replies.