2 +++ b/arch/arm/dts/mt7986a-glinet-gl-mt6000.dts
4 +// SPDX-License-Identifier: GPL-2.0
7 +#include <dt-bindings/input/linux-event-codes.h>
8 +#include <dt-bindings/gpio/gpio.h>
10 +#include "mt7986.dtsi"
13 + model = "GL.iNet GL-MT6000";
14 + compatible = "glinet,gl-mt6000", "mediatek,mt7986-emmc-rfb", "mediatek,mt7986";
17 + stdout-path = &uart0;
18 + tick-timer = &timer0;
22 + device_type = "memory";
23 + reg = <0x40000000 0x40000000>;
26 + reg_1p8v: regulator-1p8v {
27 + compatible = "regulator-fixed";
28 + regulator-name = "fixed-1.8V";
29 + regulator-min-microvolt = <1800000>;
30 + regulator-max-microvolt = <1800000>;
32 + regulator-always-on;
35 + reg_3p3v: regulator-3p3v {
36 + compatible = "regulator-fixed";
37 + regulator-name = "fixed-3.3V";
38 + regulator-min-microvolt = <3300000>;
39 + regulator-max-microvolt = <3300000>;
41 + regulator-always-on;
45 + compatible = "gpio-keys";
49 + gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
50 + linux,code = <KEY_RESTART>;
55 + compatible = "gpio-leds";
57 + led_status_blue: green {
58 + label = "blue:status";
59 + gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
62 + led_status_white: blue {
63 + label = "white:status";
64 + gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
71 + mediatek,force-highspeed;
77 + mediatek,gmac-id = <0>;
78 + phy-mode = "2500base-x";
79 + mediatek,switch = "mt7531";
80 + reset-gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
89 + mmc0_pins_default: mmc0default {
96 + pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
97 + "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
98 + "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
100 + drive-strength = <MTK_DRIVE_4mA>;
101 + bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
106 + drive-strength = <MTK_DRIVE_6mA>;
107 + bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
112 + bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
116 + pins = "EMMC_RSTB";
117 + drive-strength = <MTK_DRIVE_4mA>;
118 + bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
124 + pinctrl-names = "default";
125 + pinctrl-0 = <&mmc0_pins_default>;
127 + max-frequency = <200000000>;
130 + vmmc-supply = <®_3p3v>;
131 + vqmmc-supply = <®_1p8v>;
137 + status = "disabled";
140 +++ b/configs/mt7986a_glinet_gl-mt6000_defconfig
143 +CONFIG_SYS_HAS_NONCACHED_MEMORY=y
144 +CONFIG_POSITION_INDEPENDENT=y
145 +CONFIG_ARCH_MEDIATEK=y
146 +CONFIG_TEXT_BASE=0x41e00000
147 +CONFIG_SYS_MALLOC_F_LEN=0x4000
148 +CONFIG_NR_DRAM_BANKS=1
149 +CONFIG_ENV_SIZE=0x80000
150 +CONFIG_ENV_OFFSET=0x400000
151 +CONFIG_DEFAULT_DEVICE_TREE="mt7986a-glinet-gl-mt6000"
152 +CONFIG_SYS_PROMPT="MT7986> "
153 +CONFIG_OF_LIBFDT_OVERLAY=y
154 +CONFIG_TARGET_MT7986=y
155 +CONFIG_PRE_CON_BUF_ADDR=0x4007EF00
156 +CONFIG_DEBUG_UART_BASE=0x11002000
157 +CONFIG_DEBUG_UART_CLOCK=40000000
158 +CONFIG_SYS_LOAD_ADDR=0x46000000
162 +CONFIG_AUTOBOOT_KEYED=y
163 +CONFIG_AUTOBOOT_MENU_SHOW=y
164 +CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-glinet-gl-mt6000.dtb"
166 +CONFIG_PRE_CONSOLE_BUFFER=y
168 +CONFIG_BOARD_LATE_INIT=y
169 +CONFIG_HUSH_PARSER=y
171 +CONFIG_CMD_LICENSE=y
172 +CONFIG_CMD_BOOTMENU=y
174 +CONFIG_CMD_ERASEENV=y
175 +CONFIG_CMD_ENV_FLAGS=y
176 +CONFIG_CMD_STRINGS=y
185 +CONFIG_CMD_TFTPSRV=y
191 +CONFIG_CMD_LINK_LOCAL=y
194 +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
199 +CONFIG_ENV_OVERWRITE=y
200 +CONFIG_ENV_IS_IN_MMC=y
201 +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
202 +CONFIG_USE_DEFAULT_ENV_FILE=y
203 +CONFIG_DEFAULT_ENV_FILE="glinet_gl-mt6000_env"
204 +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
205 +CONFIG_VERSION_VARIABLE=y
206 +CONFIG_NET_RANDOM_ETHADDR=y
209 +CONFIG_IPADDR="192.168.1.1"
210 +CONFIG_USE_SERVERIP=y
211 +CONFIG_SERVERIP="192.168.1.254"
215 +CONFIG_BUTTON_GPIO=y
221 +CONFIG_SUPPORT_EMMC_BOOT=y
222 +CONFIG_MMC_HS200_SUPPORT=y
225 +CONFIG_MEDIATEK_ETH=y
227 +CONFIG_PHY_MTK_TPHY=y
230 +CONFIG_PINCTRL_MT7986=y
231 +CONFIG_POWER_DOMAIN=y
232 +CONFIG_MTK_POWER_DOMAIN=y
233 +CONFIG_DM_REGULATOR=y
234 +CONFIG_DM_REGULATOR_FIXED=y
235 +CONFIG_DM_REGULATOR_GPIO=y
242 +CONFIG_USB_XHCI_HCD=y
243 +CONFIG_USB_XHCI_MTK=y
244 +CONFIG_USB_STORAGE=y
246 +CONFIG_LMB_MAX_REGIONS=64
248 +++ b/glinet_gl-mt6000_env
251 +serverip=192.168.1.254
254 +bootfile_bl2=openwrt-mediatek-filogic-glinet_gl-mt6000-preloader.bin
255 +bootfile_fip=openwrt-mediatek-filogic-glinet_gl-mt6000-bl31-uboot.fip
256 +bootfile_firmware=openwrt-mediatek-filogic-glinet_gl-mt6000-squashfs-factory.bin
257 +bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
258 +bootmenu_title= *** U-Boot Boot Menu for GL-iNet GL-MT6000 ***
259 +bootmenu_0=Startup system (Default).=run boot_system
260 +bootmenu_1=Load Firmware via TFTP then write to eMMC.=run boot_tftp_firmware ; run bootmenu_confirm_return
261 +bootmenu_2=Load BL31+U-Boot FIP via TFTP then write to eMMC.=run boot_tftp_write_fip ; run bootmenu_confirm_return
262 +bootmenu_3=mLoad BL2 preloader via TFTP then write to eMMC.=run boot_tftp_write_bl2 ; run bootmenu_confirm_return
263 +bootmenu_4=Reboot.=reset
264 +bootmenu_5=Reset all settings to factory defaults.=run reset_factory ; reset
265 +filesize_to_blk=setexpr cnt $filesize + 0x1ff && setexpr cnt $cnt / 0x200
266 +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
267 +boot_system=part start mmc 0 kernel part_addr && part size mmc 0 kernel part_size && run mmc_read_kernel && bootm
268 +boot_tftp_firmware=tftpboot $loadaddr $bootfile_firmware && run emmc_write_firmware
269 +boot_tftp_write_fip=tftpboot $loadaddr $bootfile_fip && run emmc_write_fip
270 +boot_tftp_write_bl2=tftpboot $loadaddr $bootfile_bl2 && run emmc_write_bl2
271 +emmc_write_firmware=part start mmc 0 kernel part_addr && run filesize_to_blk && mmc write $loadaddr $part_addr $cnt
272 +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
273 +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
274 +reset_factory=eraseenv && reset