filogic: add support for GL.iNet GL-MT6000
Hardware specification: * SoC: MediaTek MT7986A 4x A53 * Flash: 8GB EMMC * RAM: 1GB DDR4 * Ethernet: * 2x2.5G RJ45 port (RTL8221B) * 4x1G RJ45 ports (MT7531AE) * WLAN: * 2.4GHz: MT7976GN 4T4R * 5GHz: MT7976AN 4T4R * Button: Reset * LED: 1 x dual color LED * USB: 1 x USB 3.0 * Power: DC 12V 4A * UART: 3V3 115200 8N1 (Pinout: GND TX RX VCC) * JTAG: 9 PIN If you want to use u-boot from OpenWrt, you can upgrade it safely. * bl2: openwrt-mediatek-filogic-glinet_gl-mt6000-preloader.bin * fip: openwrt-mediatek-filogic-glinet_gl-mt6000-bl31-uboot.fip `openwrt-mediatek-filogic-glinet_gl-mt6000-squashfs-factory.bin` is used in OpenWrt's u-boot. Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com> (cherry picked from commit fe10f9743935d6986e80e7cb082469e6bc5a03f0)
This commit is contained in:
		 Jianhui Zhao
					Jianhui Zhao
				
			
				
					committed by
					
						 Rafał Miłecki
						Rafał Miłecki
					
				
			
			
				
	
			
			
			 Rafał Miłecki
						Rafał Miłecki
					
				
			
						parent
						
							28d15e2040
						
					
				
				
					commit
					b530d492a9
				
			| @@ -57,6 +57,10 @@ cmcc,rax3000m) | |||||||
| glinet,gl-mt3000) | glinet,gl-mt3000) | ||||||
| 	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x80000" "0x20000" | 	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x80000" "0x20000" | ||||||
| 	;; | 	;; | ||||||
|  | glinet,gl-mt6000) | ||||||
|  | 	local envdev=$(find_mmc_part "u-boot-env") | ||||||
|  | 	ubootenv_add_uci_config "$envdev" "0x0" "0x80000" | ||||||
|  | 	;; | ||||||
| mercusys,mr90x-v1) | mercusys,mr90x-v1) | ||||||
| 	local envdev=/dev/mtd$(find_mtd_index "u-boot-env") | 	local envdev=/dev/mtd$(find_mtd_index "u-boot-env") | ||||||
| 	ubootenv_add_uci_config "$envdev" "0x0" "0x20000" "0x20000" "1" | 	ubootenv_add_uci_config "$envdev" "0x0" "0x20000" "0x20000" "1" | ||||||
|   | |||||||
| @@ -381,6 +381,18 @@ define U-Boot/mt7986_bananapi_bpi-r3-nor | |||||||
|   FIP_COMPRESS:=1 |   FIP_COMPRESS:=1 | ||||||
| endef | endef | ||||||
|  |  | ||||||
|  | define U-Boot/mt7986_glinet_gl-mt6000 | ||||||
|  |   NAME:=GL.iNet GL-MT6000 | ||||||
|  |   BUILD_SUBTARGET:=filogic | ||||||
|  |   BUILD_DEVICES:=glinet_gl-mt6000 | ||||||
|  |   UBOOT_CONFIG:=mt7986a_glinet_gl-mt6000 | ||||||
|  |   UBOOT_IMAGE:=u-boot.fip | ||||||
|  |   BL2_BOOTDEV:=emmc | ||||||
|  |   BL2_SOC:=mt7986 | ||||||
|  |   BL2_DDRTYPE:=ddr4 | ||||||
|  |   DEPENDS:=+trusted-firmware-a-mt7986-emmc-ddr4 | ||||||
|  | endef | ||||||
|  |  | ||||||
| define U-Boot/mt7986_tplink_tl-xdr4288 | define U-Boot/mt7986_tplink_tl-xdr4288 | ||||||
|   NAME:=TP-LINK TL-XDR4288 |   NAME:=TP-LINK TL-XDR4288 | ||||||
|   BUILD_SUBTARGET:=filogic |   BUILD_SUBTARGET:=filogic | ||||||
| @@ -522,6 +534,7 @@ UBOOT_TARGETS := \ | |||||||
| 	mt7986_bananapi_bpi-r3-sdmmc \ | 	mt7986_bananapi_bpi-r3-sdmmc \ | ||||||
| 	mt7986_bananapi_bpi-r3-snand \ | 	mt7986_bananapi_bpi-r3-snand \ | ||||||
| 	mt7986_bananapi_bpi-r3-nor \ | 	mt7986_bananapi_bpi-r3-nor \ | ||||||
|  | 	mt7986_glinet_gl-mt6000 \ | ||||||
| 	mt7986_tplink_tl-xdr4288 \ | 	mt7986_tplink_tl-xdr4288 \ | ||||||
| 	mt7986_tplink_tl-xdr6086 \ | 	mt7986_tplink_tl-xdr6086 \ | ||||||
| 	mt7986_tplink_tl-xdr6088 \ | 	mt7986_tplink_tl-xdr6088 \ | ||||||
|   | |||||||
							
								
								
									
										274
									
								
								package/boot/uboot-mediatek/patches/436-add-glinet-mt6000.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										274
									
								
								package/boot/uboot-mediatek/patches/436-add-glinet-mt6000.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,274 @@ | |||||||
|  | --- /dev/null | ||||||
|  | +++ b/arch/arm/dts/mt7986a-glinet-gl-mt6000.dts | ||||||
|  | @@ -0,0 +1,135 @@ | ||||||
|  | +// SPDX-License-Identifier: GPL-2.0 | ||||||
|  | + | ||||||
|  | +/dts-v1/; | ||||||
|  | +#include <dt-bindings/input/linux-event-codes.h> | ||||||
|  | +#include <dt-bindings/gpio/gpio.h> | ||||||
|  | + | ||||||
|  | +#include "mt7986.dtsi" | ||||||
|  | + | ||||||
|  | +/ { | ||||||
|  | +	model = "GL.iNet GL-MT6000"; | ||||||
|  | +	compatible = "glinet,gl-mt6000", "mediatek,mt7986-emmc-rfb", "mediatek,mt7986"; | ||||||
|  | + | ||||||
|  | +	chosen { | ||||||
|  | +		stdout-path = &uart0; | ||||||
|  | +		tick-timer = &timer0; | ||||||
|  | +	}; | ||||||
|  | + | ||||||
|  | +	memory@40000000 { | ||||||
|  | +		device_type = "memory"; | ||||||
|  | +		reg = <0x40000000 0x40000000>; | ||||||
|  | +	}; | ||||||
|  | + | ||||||
|  | +    reg_1p8v: regulator-1p8v { | ||||||
|  | +		compatible = "regulator-fixed"; | ||||||
|  | +		regulator-name = "fixed-1.8V"; | ||||||
|  | +		regulator-min-microvolt = <1800000>; | ||||||
|  | +		regulator-max-microvolt = <1800000>; | ||||||
|  | +		regulator-boot-on; | ||||||
|  | +		regulator-always-on; | ||||||
|  | +	}; | ||||||
|  | + | ||||||
|  | +	reg_3p3v: regulator-3p3v { | ||||||
|  | +		compatible = "regulator-fixed"; | ||||||
|  | +		regulator-name = "fixed-3.3V"; | ||||||
|  | +		regulator-min-microvolt = <3300000>; | ||||||
|  | +		regulator-max-microvolt = <3300000>; | ||||||
|  | +		regulator-boot-on; | ||||||
|  | +		regulator-always-on; | ||||||
|  | +	}; | ||||||
|  | + | ||||||
|  | +	keys { | ||||||
|  | +		compatible = "gpio-keys"; | ||||||
|  | + | ||||||
|  | +		wps { | ||||||
|  | +			label = "reset"; | ||||||
|  | +			gpios = <&gpio 9 GPIO_ACTIVE_LOW>; | ||||||
|  | +			linux,code = <KEY_RESTART>; | ||||||
|  | +		}; | ||||||
|  | +	}; | ||||||
|  | + | ||||||
|  | +	leds { | ||||||
|  | +		compatible = "gpio-leds"; | ||||||
|  | + | ||||||
|  | +		led_status_blue: green { | ||||||
|  | +			label = "blue:status"; | ||||||
|  | +			gpios = <&gpio 28 GPIO_ACTIVE_LOW>; | ||||||
|  | +		}; | ||||||
|  | + | ||||||
|  | +		led_status_white: blue { | ||||||
|  | +			label = "white:status"; | ||||||
|  | +			gpios = <&gpio 27 GPIO_ACTIVE_LOW>; | ||||||
|  | +		}; | ||||||
|  | +	}; | ||||||
|  | + | ||||||
|  | +}; | ||||||
|  | + | ||||||
|  | +&uart0 { | ||||||
|  | +	mediatek,force-highspeed; | ||||||
|  | +	status = "okay"; | ||||||
|  | +}; | ||||||
|  | + | ||||||
|  | +ð { | ||||||
|  | +	status = "okay"; | ||||||
|  | +	mediatek,gmac-id = <0>; | ||||||
|  | +	phy-mode = "2500base-x"; | ||||||
|  | +	mediatek,switch = "mt7531"; | ||||||
|  | +	reset-gpios = <&gpio 18 GPIO_ACTIVE_HIGH>; | ||||||
|  | + | ||||||
|  | +	fixed-link { | ||||||
|  | +		speed = <2500>; | ||||||
|  | +		full-duplex; | ||||||
|  | +	}; | ||||||
|  | +}; | ||||||
|  | + | ||||||
|  | +&pinctrl { | ||||||
|  | +	mmc0_pins_default: mmc0default { | ||||||
|  | +		mux { | ||||||
|  | +			function = "flash"; | ||||||
|  | +			groups =  "emmc_51"; | ||||||
|  | +		}; | ||||||
|  | + | ||||||
|  | +		conf-cmd-dat { | ||||||
|  | +			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2", | ||||||
|  | +			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5", | ||||||
|  | +			       "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD"; | ||||||
|  | +			input-enable; | ||||||
|  | +			drive-strength = <MTK_DRIVE_4mA>; | ||||||
|  | +			bias-pull-up = <MTK_PUPD_SET_R1R0_01>; | ||||||
|  | +		}; | ||||||
|  | + | ||||||
|  | +		conf-clk { | ||||||
|  | +			pins = "EMMC_CK"; | ||||||
|  | +			drive-strength = <MTK_DRIVE_6mA>; | ||||||
|  | +			bias-pull-down = <MTK_PUPD_SET_R1R0_10>; | ||||||
|  | +		}; | ||||||
|  | + | ||||||
|  | +		conf-dsl { | ||||||
|  | +			pins = "EMMC_DSL"; | ||||||
|  | +			bias-pull-down = <MTK_PUPD_SET_R1R0_10>; | ||||||
|  | +		}; | ||||||
|  | + | ||||||
|  | +		conf-rst { | ||||||
|  | +			pins = "EMMC_RSTB"; | ||||||
|  | +			drive-strength = <MTK_DRIVE_4mA>; | ||||||
|  | +			bias-pull-up = <MTK_PUPD_SET_R1R0_01>; | ||||||
|  | +		}; | ||||||
|  | +	}; | ||||||
|  | +}; | ||||||
|  | + | ||||||
|  | +&mmc0 { | ||||||
|  | +	pinctrl-names = "default"; | ||||||
|  | +	pinctrl-0 = <&mmc0_pins_default>; | ||||||
|  | +	bus-width = <8>; | ||||||
|  | +	max-frequency = <200000000>; | ||||||
|  | +	cap-mmc-highspeed; | ||||||
|  | +	cap-mmc-hw-reset; | ||||||
|  | +	vmmc-supply = <®_3p3v>; | ||||||
|  | +	vqmmc-supply = <®_1p8v>; | ||||||
|  | +	non-removable; | ||||||
|  | +	status = "okay"; | ||||||
|  | +}; | ||||||
|  | + | ||||||
|  | +&wmcpu_emi { | ||||||
|  | +	status = "disabled"; | ||||||
|  | +}; | ||||||
|  | --- /dev/null | ||||||
|  | +++ b/configs/mt7986a_glinet_gl-mt6000_defconfig | ||||||
|  | @@ -0,0 +1,105 @@ | ||||||
|  | +CONFIG_ARM=y | ||||||
|  | +CONFIG_SYS_HAS_NONCACHED_MEMORY=y | ||||||
|  | +CONFIG_POSITION_INDEPENDENT=y | ||||||
|  | +CONFIG_ARCH_MEDIATEK=y | ||||||
|  | +CONFIG_TEXT_BASE=0x41e00000 | ||||||
|  | +CONFIG_SYS_MALLOC_F_LEN=0x4000 | ||||||
|  | +CONFIG_NR_DRAM_BANKS=1 | ||||||
|  | +CONFIG_ENV_SIZE=0x80000 | ||||||
|  | +CONFIG_ENV_OFFSET=0x400000 | ||||||
|  | +CONFIG_DEFAULT_DEVICE_TREE="mt7986a-glinet-gl-mt6000" | ||||||
|  | +CONFIG_SYS_PROMPT="MT7986> " | ||||||
|  | +CONFIG_OF_LIBFDT_OVERLAY=y | ||||||
|  | +CONFIG_TARGET_MT7986=y | ||||||
|  | +CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 | ||||||
|  | +CONFIG_DEBUG_UART_BASE=0x11002000 | ||||||
|  | +CONFIG_DEBUG_UART_CLOCK=40000000 | ||||||
|  | +CONFIG_SYS_LOAD_ADDR=0x46000000 | ||||||
|  | +CONFIG_DEBUG_UART=y | ||||||
|  | +CONFIG_AHCI=y | ||||||
|  | +CONFIG_FIT=y | ||||||
|  | +CONFIG_AUTOBOOT_KEYED=y | ||||||
|  | +CONFIG_AUTOBOOT_MENU_SHOW=y | ||||||
|  | +CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-glinet-gl-mt6000.dtb" | ||||||
|  | +CONFIG_LOGLEVEL=7 | ||||||
|  | +CONFIG_PRE_CONSOLE_BUFFER=y | ||||||
|  | +CONFIG_LOG=y | ||||||
|  | +CONFIG_BOARD_LATE_INIT=y | ||||||
|  | +CONFIG_HUSH_PARSER=y | ||||||
|  | +CONFIG_CMD_CPU=y | ||||||
|  | +CONFIG_CMD_LICENSE=y | ||||||
|  | +CONFIG_CMD_BOOTMENU=y | ||||||
|  | +CONFIG_CMD_ASKENV=y | ||||||
|  | +CONFIG_CMD_ERASEENV=y | ||||||
|  | +CONFIG_CMD_ENV_FLAGS=y | ||||||
|  | +CONFIG_CMD_STRINGS=y | ||||||
|  | +CONFIG_CMD_DM=y | ||||||
|  | +CONFIG_CMD_GPIO=y | ||||||
|  | +CONFIG_CMD_PWM=y | ||||||
|  | +CONFIG_CMD_GPT=y | ||||||
|  | +CONFIG_CMD_MMC=y | ||||||
|  | +CONFIG_CMD_PART=y | ||||||
|  | +CONFIG_CMD_USB=y | ||||||
|  | +CONFIG_CMD_DHCP=y | ||||||
|  | +CONFIG_CMD_TFTPSRV=y | ||||||
|  | +CONFIG_CMD_RARP=y | ||||||
|  | +CONFIG_CMD_PING=y | ||||||
|  | +CONFIG_CMD_CDP=y | ||||||
|  | +CONFIG_CMD_SNTP=y | ||||||
|  | +CONFIG_CMD_DNS=y | ||||||
|  | +CONFIG_CMD_LINK_LOCAL=y | ||||||
|  | +CONFIG_CMD_CACHE=y | ||||||
|  | +CONFIG_CMD_PSTORE=y | ||||||
|  | +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 | ||||||
|  | +CONFIG_CMD_UUID=y | ||||||
|  | +CONFIG_CMD_HASH=y | ||||||
|  | +CONFIG_CMD_SMC=y | ||||||
|  | +CONFIG_OF_EMBED=y | ||||||
|  | +CONFIG_ENV_OVERWRITE=y | ||||||
|  | +CONFIG_ENV_IS_IN_MMC=y | ||||||
|  | +CONFIG_SYS_RELOC_GD_ENV_ADDR=y | ||||||
|  | +CONFIG_USE_DEFAULT_ENV_FILE=y | ||||||
|  | +CONFIG_DEFAULT_ENV_FILE="glinet_gl-mt6000_env" | ||||||
|  | +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y | ||||||
|  | +CONFIG_VERSION_VARIABLE=y | ||||||
|  | +CONFIG_NET_RANDOM_ETHADDR=y | ||||||
|  | +CONFIG_NETCONSOLE=y | ||||||
|  | +CONFIG_USE_IPADDR=y | ||||||
|  | +CONFIG_IPADDR="192.168.1.1" | ||||||
|  | +CONFIG_USE_SERVERIP=y | ||||||
|  | +CONFIG_SERVERIP="192.168.1.254" | ||||||
|  | +CONFIG_REGMAP=y | ||||||
|  | +CONFIG_SYSCON=y | ||||||
|  | +CONFIG_BUTTON=y | ||||||
|  | +CONFIG_BUTTON_GPIO=y | ||||||
|  | +CONFIG_CLK=y | ||||||
|  | +CONFIG_GPIO_HOG=y | ||||||
|  | +CONFIG_LED=y | ||||||
|  | +CONFIG_LED_BLINK=y | ||||||
|  | +CONFIG_LED_GPIO=y | ||||||
|  | +CONFIG_SUPPORT_EMMC_BOOT=y | ||||||
|  | +CONFIG_MMC_HS200_SUPPORT=y | ||||||
|  | +CONFIG_MMC_MTK=y | ||||||
|  | +CONFIG_PHY_FIXED=y | ||||||
|  | +CONFIG_MEDIATEK_ETH=y | ||||||
|  | +CONFIG_PHY=y | ||||||
|  | +CONFIG_PHY_MTK_TPHY=y | ||||||
|  | +CONFIG_PINCTRL=y | ||||||
|  | +CONFIG_PINCONF=y | ||||||
|  | +CONFIG_PINCTRL_MT7986=y | ||||||
|  | +CONFIG_POWER_DOMAIN=y | ||||||
|  | +CONFIG_MTK_POWER_DOMAIN=y | ||||||
|  | +CONFIG_DM_REGULATOR=y | ||||||
|  | +CONFIG_DM_REGULATOR_FIXED=y | ||||||
|  | +CONFIG_DM_REGULATOR_GPIO=y | ||||||
|  | +CONFIG_DM_PWM=y | ||||||
|  | +CONFIG_PWM_MTK=y | ||||||
|  | +CONFIG_RAM=y | ||||||
|  | +CONFIG_DM_SERIAL=y | ||||||
|  | +CONFIG_MTK_SERIAL=y | ||||||
|  | +CONFIG_USB=y | ||||||
|  | +CONFIG_USB_XHCI_HCD=y | ||||||
|  | +CONFIG_USB_XHCI_MTK=y | ||||||
|  | +CONFIG_USB_STORAGE=y | ||||||
|  | +CONFIG_HEXDUMP=y | ||||||
|  | +CONFIG_LMB_MAX_REGIONS=64 | ||||||
|  | --- /dev/null | ||||||
|  | +++ b/glinet_gl-mt6000_env | ||||||
|  | @@ -0,0 +1,25 @@ | ||||||
|  | +ipaddr=192.168.1.1 | ||||||
|  | +serverip=192.168.1.254 | ||||||
|  | +loadaddr=0x46000000 | ||||||
|  | +bootdelay=3 | ||||||
|  | +bootfile_bl2=openwrt-mediatek-filogic-glinet_gl-mt6000-preloader.bin | ||||||
|  | +bootfile_fip=openwrt-mediatek-filogic-glinet_gl-mt6000-bl31-uboot.fip | ||||||
|  | +bootfile_firmware=openwrt-mediatek-filogic-glinet_gl-mt6000-squashfs-factory.bin | ||||||
|  | +bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60 | ||||||
|  | +bootmenu_title=      *** U-Boot Boot Menu for GL-iNet GL-MT6000 *** | ||||||
|  | +bootmenu_0=Startup system (Default).=run boot_system | ||||||
|  | +bootmenu_1=Load Firmware via TFTP then write to eMMC.=run boot_tftp_firmware ; run bootmenu_confirm_return | ||||||
|  | +bootmenu_2=Load BL31+U-Boot FIP via TFTP then write to eMMC.=run boot_tftp_write_fip ; run bootmenu_confirm_return | ||||||
|  | +bootmenu_3=mLoad BL2 preloader via TFTP then write to eMMC.=run boot_tftp_write_bl2 ; run bootmenu_confirm_return | ||||||
|  | +bootmenu_4=Reboot.=reset | ||||||
|  | +bootmenu_5=Reset all settings to factory defaults.=run reset_factory ; reset | ||||||
|  | +filesize_to_blk=setexpr cnt $filesize + 0x1ff && setexpr cnt $cnt / 0x200 | ||||||
|  | +mmc_read_kernel=mmc read $loadaddr $part_addr 0x100 && imszb $loadaddr image_size && test 0x$image_size -le 0x$part_size && mmc read $loadaddr $part_addr $image_size | ||||||
|  | +boot_system=part start mmc 0 kernel part_addr && part size mmc 0 kernel part_size && run mmc_read_kernel && bootm | ||||||
|  | +boot_tftp_firmware=tftpboot $loadaddr $bootfile_firmware && run emmc_write_firmware | ||||||
|  | +boot_tftp_write_fip=tftpboot $loadaddr $bootfile_fip && run emmc_write_fip | ||||||
|  | +boot_tftp_write_bl2=tftpboot $loadaddr $bootfile_bl2 && run emmc_write_bl2 | ||||||
|  | +emmc_write_firmware=part start mmc 0 kernel part_addr && run filesize_to_blk && mmc write $loadaddr $part_addr $cnt | ||||||
|  | +emmc_write_bl2=run filesize_to_blk && test 0x$cnt -le 0x800 && mmc partconf 0 1 1 1 &&  && mmc write $loadaddr 0x0 0x800 ; mmc partconf 0 1 1 0 | ||||||
|  | +emmc_write_fip=part start mmc 0 fip part_addr && part size mmc 0 fip part_size && run filesize_to_blk && test 0x$cnt -le 0x$part_size && mmc write $loadaddr $part_addr $cnt | ||||||
|  | +reset_factory=eraseenv && reset | ||||||
							
								
								
									
										306
									
								
								target/linux/mediatek/dts/mt7986a-glinet-gl-mt6000.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										306
									
								
								target/linux/mediatek/dts/mt7986a-glinet-gl-mt6000.dts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,306 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  |  | ||||||
|  | /dts-v1/; | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  | #include <dt-bindings/pinctrl/mt65xx.h> | ||||||
|  |  | ||||||
|  | #include "mt7986a.dtsi" | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "GL.iNet GL-MT6000"; | ||||||
|  | 	compatible = "glinet,gl-mt6000", "mediatek,mt7986a"; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		serial0 = &uart0; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	chosen { | ||||||
|  | 		stdout-path = "serial0:115200n8"; | ||||||
|  | 		bootargs-append = " root=PARTLABEL=rootfs rootwait"; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	reg_1p8v: regulator-1p8v { | ||||||
|  | 		compatible = "regulator-fixed"; | ||||||
|  | 		regulator-name = "1.8vd"; | ||||||
|  | 		regulator-min-microvolt = <1800000>; | ||||||
|  | 		regulator-max-microvolt = <1800000>; | ||||||
|  | 		regulator-boot-on; | ||||||
|  | 		regulator-always-on; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	reg_3p3v: regulator-3p3v { | ||||||
|  | 		compatible = "regulator-fixed"; | ||||||
|  | 		regulator-name = "fixed-3.3V"; | ||||||
|  | 		regulator-min-microvolt = <3300000>; | ||||||
|  | 		regulator-max-microvolt = <3300000>; | ||||||
|  | 		regulator-boot-on; | ||||||
|  | 		regulator-always-on; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	keys { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  |  | ||||||
|  | 		reset { | ||||||
|  | 			label = "reset"; | ||||||
|  | 			linux,code = <KEY_RESTART>; | ||||||
|  | 			gpios = <&pio 9 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		led_run: led@0 { | ||||||
|  | 			label = "blue:run"; | ||||||
|  | 			gpios = <&pio 38 GPIO_ACTIVE_LOW>; | ||||||
|  | 			default-state = "on"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		led@1 { | ||||||
|  | 			label = "white:system"; | ||||||
|  | 			gpios = <&pio 37 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	usb_vbus: regulator-usb-vbus { | ||||||
|  | 		compatible = "regulator-fixed"; | ||||||
|  | 		regulator-name = "usb_vbus"; | ||||||
|  | 		regulator-min-microvolt = <5000000>; | ||||||
|  | 		regulator-max-microvolt = <5000000>; | ||||||
|  | 		gpios = <&pio 24 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		enable-active-high; | ||||||
|  | 		regulator-boot-on; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ð { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	gmac0: mac@0 { | ||||||
|  | 		compatible = "mediatek,eth-mac"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		phy-mode = "2500base-x"; | ||||||
|  |  | ||||||
|  | 		fixed-link { | ||||||
|  | 			speed = <2500>; | ||||||
|  | 			full-duplex; | ||||||
|  | 			pause; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gmac1: mac@1 { | ||||||
|  | 		compatible = "mediatek,eth-mac"; | ||||||
|  | 		reg = <1>; | ||||||
|  | 		phy-mode = "2500base-x"; | ||||||
|  | 		phy-handle = <&phy1>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	mdio: mdio-bus { | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <0>; | ||||||
|  |  | ||||||
|  | 		phy1: phy@1 { | ||||||
|  | 			compatible = "ethernet-phy-ieee802.3-c45"; | ||||||
|  | 			reg = <1>; | ||||||
|  | 			reset-assert-us = <100000>; | ||||||
|  | 			reset-deassert-us = <100000>; | ||||||
|  | 			reset-gpios = <&pio 10 GPIO_ACTIVE_LOW>; | ||||||
|  | 			interrupt-parent = <&pio>; | ||||||
|  | 			interrupts = <46 IRQ_TYPE_LEVEL_LOW>; | ||||||
|  | 			realtek,aldps-enable; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		phy7: ethernet-phy@7 { | ||||||
|  | 			compatible = "ethernet-phy-ieee802.3-c45"; | ||||||
|  | 			reg = <7>; | ||||||
|  | 			reset-assert-us = <100000>; | ||||||
|  | 			reset-deassert-us = <100000>; | ||||||
|  | 			reset-gpios = <&pio 19 GPIO_ACTIVE_LOW>; | ||||||
|  | 			interrupt-parent = <&pio>; | ||||||
|  | 			interrupts = <47 IRQ_TYPE_LEVEL_LOW>; | ||||||
|  | 			realtek,aldps-enable; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		switch: switch@31 { | ||||||
|  | 			compatible = "mediatek,mt7531"; | ||||||
|  | 			reg = <31>; | ||||||
|  | 			reset-gpios = <&pio 18 GPIO_ACTIVE_HIGH>; | ||||||
|  | 			interrupt-controller; | ||||||
|  | 			#interrupt-cells = <1>; | ||||||
|  | 			interrupt-parent = <&pio>; | ||||||
|  | 			interrupts = <66 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|  |  | ||||||
|  | 			ports { | ||||||
|  | 				#address-cells = <1>; | ||||||
|  | 				#size-cells = <0>; | ||||||
|  |  | ||||||
|  | 				port@0 { | ||||||
|  | 					reg = <0>; | ||||||
|  | 					label = "lan2"; | ||||||
|  | 				}; | ||||||
|  |  | ||||||
|  | 				port@1 { | ||||||
|  | 					reg = <1>; | ||||||
|  | 					label = "lan3"; | ||||||
|  | 				}; | ||||||
|  |  | ||||||
|  | 				port@2 { | ||||||
|  | 					reg = <2>; | ||||||
|  | 					label = "lan4"; | ||||||
|  | 				}; | ||||||
|  |  | ||||||
|  | 				port@3 { | ||||||
|  | 					reg = <3>; | ||||||
|  | 					label = "lan5"; | ||||||
|  | 				}; | ||||||
|  |  | ||||||
|  | 				port@5 { | ||||||
|  | 					reg = <5>; | ||||||
|  | 					label = "lan1"; | ||||||
|  | 					phy-handle = <&phy7>; | ||||||
|  | 					phy-mode = "2500base-x"; | ||||||
|  | 				}; | ||||||
|  |  | ||||||
|  | 				port@6 { | ||||||
|  | 					reg = <6>; | ||||||
|  | 					ethernet = <&gmac0>; | ||||||
|  | 					phy-mode = "2500base-x"; | ||||||
|  |  | ||||||
|  | 					fixed-link { | ||||||
|  | 						speed = <2500>; | ||||||
|  | 						full-duplex; | ||||||
|  | 						pause; | ||||||
|  | 					}; | ||||||
|  | 				}; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pio { | ||||||
|  | 	wf_2g_5g_pins: wf_2g_5g-pins { | ||||||
|  | 		mux { | ||||||
|  | 			function = "wifi"; | ||||||
|  | 			groups = "wf_2g", "wf_5g"; | ||||||
|  | 		}; | ||||||
|  | 		conf { | ||||||
|  | 			pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4", | ||||||
|  | 			       "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6", | ||||||
|  | 			       "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10", | ||||||
|  | 			       "WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1", | ||||||
|  | 			       "WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0", | ||||||
|  | 			       "WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8", | ||||||
|  | 			       "WF1_TOP_CLK", "WF1_TOP_DATA"; | ||||||
|  | 			drive-strength = <4>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	mmc0_pins_default: mmc0-pins { | ||||||
|  | 		mux { | ||||||
|  | 			function = "emmc"; | ||||||
|  | 			groups = "emmc_51"; | ||||||
|  | 		}; | ||||||
|  | 		conf-cmd-dat { | ||||||
|  | 			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2", | ||||||
|  | 			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5", | ||||||
|  | 			       "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD"; | ||||||
|  | 			input-enable; | ||||||
|  | 			drive-strength = <4>; | ||||||
|  | 			mediatek,pull-up-adv = <1>;	/* pull-up 10K */ | ||||||
|  | 		}; | ||||||
|  | 		conf-clk { | ||||||
|  | 			pins = "EMMC_CK"; | ||||||
|  | 			drive-strength = <6>; | ||||||
|  | 			mediatek,pull-down-adv = <2>;	/* pull-down 50K */ | ||||||
|  | 		}; | ||||||
|  | 		conf-ds { | ||||||
|  | 			pins = "EMMC_DSL"; | ||||||
|  | 			mediatek,pull-down-adv = <2>;	/* pull-down 50K */ | ||||||
|  | 		}; | ||||||
|  | 		conf-rst { | ||||||
|  | 			pins = "EMMC_RSTB"; | ||||||
|  | 			drive-strength = <4>; | ||||||
|  | 			mediatek,pull-up-adv = <1>;	/* pull-up 10K */ | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	mmc0_pins_uhs: mmc0-uhs-pins { | ||||||
|  | 		mux { | ||||||
|  | 			function = "emmc"; | ||||||
|  | 			groups = "emmc_51"; | ||||||
|  | 		}; | ||||||
|  | 		conf-cmd-dat { | ||||||
|  | 			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2", | ||||||
|  | 			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5", | ||||||
|  | 			       "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD"; | ||||||
|  | 			input-enable; | ||||||
|  | 			drive-strength = <4>; | ||||||
|  | 			mediatek,pull-up-adv = <1>;	/* pull-up 10K */ | ||||||
|  | 		}; | ||||||
|  | 		conf-clk { | ||||||
|  | 			pins = "EMMC_CK"; | ||||||
|  | 			drive-strength = <6>; | ||||||
|  | 			mediatek,pull-down-adv = <2>;	/* pull-down 50K */ | ||||||
|  | 		}; | ||||||
|  | 		conf-ds { | ||||||
|  | 			pins = "EMMC_DSL"; | ||||||
|  | 			mediatek,pull-down-adv = <2>;	/* pull-down 50K */ | ||||||
|  | 		}; | ||||||
|  | 		conf-rst { | ||||||
|  | 			pins = "EMMC_RSTB"; | ||||||
|  | 			drive-strength = <4>; | ||||||
|  | 			mediatek,pull-up-adv = <1>;	/* pull-up 10K */ | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &crypto { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &ssusb { | ||||||
|  | 	vusb33-supply = <®_3p3v>; | ||||||
|  | 	vbus-supply = <&usb_vbus>; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &trng { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &uart0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &watchdog { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi { | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	pinctrl-0 = <&wf_2g_5g_pins>; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &mmc0 { | ||||||
|  | 	pinctrl-names = "default", "state_uhs"; | ||||||
|  | 	pinctrl-0 = <&mmc0_pins_default>; | ||||||
|  | 	pinctrl-1 = <&mmc0_pins_uhs>; | ||||||
|  | 	bus-width = <8>; | ||||||
|  | 	max-frequency = <200000000>; | ||||||
|  | 	cap-mmc-highspeed; | ||||||
|  | 	mmc-hs200-1_8v; | ||||||
|  | 	mmc-hs400-1_8v; | ||||||
|  | 	hs400-ds-delay = <0x14014>; | ||||||
|  | 	vmmc-supply = <®_3p3v>; | ||||||
|  | 	vqmmc-supply = <®_1p8v>; | ||||||
|  | 	non-removable; | ||||||
|  | 	no-sd; | ||||||
|  | 	no-sdio; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
| @@ -49,6 +49,7 @@ mediatek_setup_interfaces() | |||||||
| 	qihoo,360t7) | 	qihoo,360t7) | ||||||
| 		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" wan | 		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" wan | ||||||
| 		;; | 		;; | ||||||
|  | 	glinet,gl-mt6000|\ | ||||||
| 	tplink,tl-xdr4288|\ | 	tplink,tl-xdr4288|\ | ||||||
| 	tplink,tl-xdr6088) | 	tplink,tl-xdr6088) | ||||||
| 		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 lan5" eth1 | 		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 lan5" eth1 | ||||||
| @@ -100,6 +101,11 @@ mediatek_setup_macs() | |||||||
| 		;; | 		;; | ||||||
| 		esac | 		esac | ||||||
| 		;; | 		;; | ||||||
|  | 	glinet,gl-mt6000) | ||||||
|  | 		label_mac=$(mmc_get_mac_binary factory 0x0a) | ||||||
|  | 		wan_mac=$label_mac | ||||||
|  | 		lan_mac=$(macaddr_add "$label_mac" 2) | ||||||
|  | 		;; | ||||||
| 	h3c,magic-nx30-pro) | 	h3c,magic-nx30-pro) | ||||||
| 		wan_mac=$(mtd_get_mac_ascii pdt_data_1 ethaddr) | 		wan_mac=$(mtd_get_mac_ascii pdt_data_1 ethaddr) | ||||||
| 		lan_mac=$(macaddr_add "$wan_mac" 1) | 		lan_mac=$(macaddr_add "$wan_mac" 1) | ||||||
|   | |||||||
| @@ -43,6 +43,13 @@ case "$FIRMWARE" in | |||||||
| 		;; | 		;; | ||||||
| 	esac | 	esac | ||||||
| 	;; | 	;; | ||||||
|  | "mediatek/mt7986_eeprom_mt7976_dual.bin") | ||||||
|  | 	case "$board" in | ||||||
|  | 	glinet,gl-mt6000) | ||||||
|  | 		caldata_extract_mmc "factory" 0x0 0x1000 | ||||||
|  | 		;; | ||||||
|  | 	esac | ||||||
|  | 	;; | ||||||
| *) | *) | ||||||
| 	exit 1 | 	exit 1 | ||||||
| 	;; | 	;; | ||||||
|   | |||||||
| @@ -54,6 +54,11 @@ case "$board" in | |||||||
| 		[ "$PHYNBR" = "0" ] && echo "$addr" > /sys${DEVPATH}/macaddress | 		[ "$PHYNBR" = "0" ] && echo "$addr" > /sys${DEVPATH}/macaddress | ||||||
| 		[ "$PHYNBR" = "1" ] && macaddr_setbit_la $(macaddr_add $addr 1) > /sys${DEVPATH}/macaddress | 		[ "$PHYNBR" = "1" ] && macaddr_setbit_la $(macaddr_add $addr 1) > /sys${DEVPATH}/macaddress | ||||||
| 		;; | 		;; | ||||||
|  | 	glinet,gl-mt6000) | ||||||
|  | 		addr=$(mmc_get_mac_binary factory 0x04) | ||||||
|  | 		[ "$PHYNBR" = "0" ] && echo "$addr" > /sys${DEVPATH}/macaddress | ||||||
|  | 		[ "$PHYNBR" = "1" ] && macaddr_add $addr 1 > /sys${DEVPATH}/macaddress | ||||||
|  | 		;; | ||||||
| 	h3c,magic-nx30-pro) | 	h3c,magic-nx30-pro) | ||||||
| 		addr=$(mtd_get_mac_ascii pdt_data_1 ethaddr) | 		addr=$(mtd_get_mac_ascii pdt_data_1 ethaddr) | ||||||
| 		[ "$PHYNBR" = "0" ] && macaddr_add $addr 2 > /sys${DEVPATH}/macaddress | 		[ "$PHYNBR" = "0" ] && macaddr_add $addr 2 > /sys${DEVPATH}/macaddress | ||||||
|   | |||||||
| @@ -96,6 +96,11 @@ platform_do_upgrade() { | |||||||
| 	cudy,wr3000-v1) | 	cudy,wr3000-v1) | ||||||
| 		default_do_upgrade "$1" | 		default_do_upgrade "$1" | ||||||
| 		;; | 		;; | ||||||
|  | 	glinet,gl-mt6000) | ||||||
|  | 		CI_KERNPART="kernel" | ||||||
|  | 		CI_ROOTPART="rootfs" | ||||||
|  | 		emmc_do_upgrade "$1" | ||||||
|  | 		;; | ||||||
| 	mercusys,mr90x-v1) | 	mercusys,mr90x-v1) | ||||||
| 		CI_UBIPART="ubi0" | 		CI_UBIPART="ubi0" | ||||||
| 		nand_do_upgrade "$1" | 		nand_do_upgrade "$1" | ||||||
| @@ -165,6 +170,7 @@ platform_copy_config() { | |||||||
| 			;; | 			;; | ||||||
| 		esac | 		esac | ||||||
| 		;; | 		;; | ||||||
|  | 	glinet,gl-mt6000|\ | ||||||
| 	ubnt,unifi-6-plus) | 	ubnt,unifi-6-plus) | ||||||
| 		emmc_copy_config | 		emmc_copy_config | ||||||
| 		;; | 		;; | ||||||
|   | |||||||
| @@ -274,6 +274,21 @@ define Device/glinet_gl-mt3000 | |||||||
| endef | endef | ||||||
| TARGET_DEVICES += glinet_gl-mt3000 | TARGET_DEVICES += glinet_gl-mt3000 | ||||||
|  |  | ||||||
|  | define Device/glinet_gl-mt6000 | ||||||
|  |   DEVICE_VENDOR := GL.iNet | ||||||
|  |   DEVICE_MODEL := GL-MT6000 | ||||||
|  |   DEVICE_DTS := mt7986a-glinet-gl-mt6000 | ||||||
|  |   DEVICE_DTS_DIR := ../dts | ||||||
|  |   DEVICE_PACKAGES := kmod-usb2 kmod-usb3 kmod-mt7986-firmware mt7986-wo-firmware e2fsprogs f2fsck mkf2fs | ||||||
|  |   IMAGES += factory.bin | ||||||
|  |   IMAGE/factory.bin := append-kernel | pad-to 32M | append-rootfs | ||||||
|  |   IMAGE/sysupgrade.bin := sysupgrade-tar | append-gl-metadata | ||||||
|  |   ARTIFACTS := preloader.bin bl31-uboot.fip | ||||||
|  |   ARTIFACT/preloader.bin := mt7986-bl2 emmc-ddr4 | ||||||
|  |   ARTIFACT/bl31-uboot.fip := mt7986-bl31-uboot glinet_gl-mt6000 | ||||||
|  | endef | ||||||
|  | TARGET_DEVICES += glinet_gl-mt6000 | ||||||
|  |  | ||||||
| define Device/h3c_magic-nx30-pro | define Device/h3c_magic-nx30-pro | ||||||
|   DEVICE_VENDOR := H3C |   DEVICE_VENDOR := H3C | ||||||
|   DEVICE_MODEL := Magic NX30 Pro |   DEVICE_MODEL := Magic NX30 Pro | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user