I made a mt7981 development board device by myself, but I don't know how to write dts and compile the system. I have a gpio table. Can someone help me write a dts? Thank you very much.
Do you have a working bootloader / u-boot? If this is a custom board you need to start there.
Obviously changing it for mt7981 reference board that matches.
You shouldn't have to write a device tree from scratch.
Learning it by example with existing boards and reading the programming manual and datasheet should be sufficient?
From memory with the GPIO you're probably just configuring the mux for the peripherals. i.e. out of gpio mode.
Are you planning on putting on vanilla openwrt and upstreaming it? Will this board or the board files be commercially available?
Yes, can you write dts and adapt it to upstream OpenWrt? I will mail the device to you, thank you
Ah not what I meant.
Nor do I want to be doing board bringup from u-boot haha.
But yeah basically take the mt7981 reference board code and modify to suit your board?
To start you would need to compare schematics to the ref board or openwrt one and then adapt?
Here's some references below.
Use openwrt one as a reference? They have schematics and board files too?
Hardware:
https://one.openwrt.org/hardware/
u-boot patch example:
openwrt patch example: (this misses mac address stuff which was added later, but you can find later stuff in the git history)
mt7981 reference board stuff:
I don't know how to code, I have no coding experience, I don't understand, can you help me write one, thank you
No programming experience is going to be very difficult/too hard for me to support.
How about starting with a known good reference board and building openwrt for it?
https://openwrt.org/docs/guide-developer/toolchain/use-buildsystem
Only other thing I can say is share the board files/schematics somewhere publicly accessible and then someone might pick it up if there is going to be eventual commercial availability and the hardware features are better than openwrt one haha.
Publicly accessible != having to sign into google and request access FYI.
Thanks, I re-edited it
Can someone help me make a uboot and OpenWrt system? Thanks
(post deleted by author)
Probably easier to answer if there was a brand and model posted...
If you post the specs for a computer, will people be able to guess the model ?
Do you intended to publicly post the files/schematics for this "R35 Mini"?
FYI, it was difficult to even get the name, it may be easier if you offer the community more information.
And you’re being very cagey about whether this is a commercial product.
If this is something you plan to sell then you should be paying a professional for the development, not asking for freebies from a volunteer web forum
~~Moderators merge "an Openwrt for this device"~~
just boot it as you already did in previous thread?
Pin name GPIO 是否使用 上电时用途 启动后用途 备注
GPIO_USER 0 是 USER键 低使能
GPIO_RESET 1 是 RESET键 低使能
SYS_WATCHDOG 3 NC
PCIE_PERESET_N 3 NC
JTAG_JTDO 4 NC
JTAG_JTDI 5 NC
JTAG_JTMS 6 NC
JTAG_JTCLK 7 是 7981_RJ45灯 低使能
JTAG_JTRST_N 8 是 7981_RJ45灯 低使能
WO_JTAG_JTDO 9 是 SYS_LED 低使能
WO_JTAG_JTDI 10 NC
WO_JTAG_JTMS 11 是 5G_REST 高复位模组
WO_JTAG_JTCLK 12 是 USB3/PCIE切换 低=PCIE,高=USB3
WO_JTAG_JTRST_N 13 是 5G_POW_EN 高5G模快供电
USB_VBUS 14 是 特殊脚 启动配置 PWM PWM风扇调速
PWM0 15 是 特殊脚 启动配置 EMMC=RST
TF=CD
SPI0_CLK 16 是 NOR-NAND TF-DATA0 默认启动方式NAND
SPI0_MOSI 17 是 NOR-NAND TF-DATA1 默认启动方式NAND
SPI0_MISO 18 是 NOR-NAND TF-DATA2 默认启动方式NAND
SPI0_CS 19 是 NOR-NAND TF-DATA3 默认启动方式NAND
SPI0_HOLD 20 是 NOR-NAND 默认启动方式NAND
SPI0_WP 21 是 NOR-NAND 默认启动方式NAND
SPI1_CLK 22 NC
SPI1_MOSI 23 NC
SPI1_MISO 24 是 TF-CMD
SPI1_CS 25 是 TF-CLK
SPI2_CLK 26 是 特殊脚 SPI-NOR
SPI2_MOSI 27 是 SPI-NOR
SPI2_MISO 28 是 SPI-NOR
SPI2_CS 29 是 SPI-NOR
SPI2_HOLD 30 是 SPI-NOR
SPI2_WP 31 是 SPI-NOR
UART0_RXD 32 是 UART0_RXD 调试串口
UART0_TXD 33 是 UART0_TXD 调试串口
WF2G_LED 34 是 2.4G WIFI-LED 低使能
WF5G_LED 35 是 5.8G WIFI-LED 低使能
SMI_MDC 36 是 SGMII_MDC GPY211_2.5G_PHY
SMI_MDIO 37 是 SGMII_MDIO GPY211_2.5G_PHY
GBE_INT 38 是 SGMII_INT GPY211_2.5G_PHY
GBE_RESET 39 是 SGMII_RESET GPY211_2.5G_PHY
git clone https://github.com/openwrt/openwrt.git
cd openwrt
grep -lri r35-mini target/
target/linux/mediatek/filogic/base-files/etc/board.d/01_leds
target/linux/mediatek/filogic/base-files/etc/board.d/02_network
target/linux/mediatek/base-files/lib/preinit/05_set_preinit_iface
target/linux/mediatek/image/filogic.mk
target/linux/mediatek/dts/mt7981b-one-r35-mini.dts
cat target/linux/mediatek/filogic/base-files/etc/board.d/01_leds
...............
one,r35-mini)
ucidef_set_led_netdev "5g" "5G" "blue:indicator-0" "eth2" "link"
ucidef_set_led_netdev "wlan2g" "WLAN2G" "blue:wlan-1" "phy0-ap0" "link"
ucidef_set_led_netdev "wlan5g" "WLAN5G" "blue:wlan-2" "phy1-ap0" "link"
;;
...............
cat target/linux/mediatek/filogic/base-files/etc/board.d/02_network
...............
one,r35-mini)
ucidef_set_interfaces_lan_wan eth1 eth0
;;
...............
cat target/linux/mediatek/base-files/lib/preinit/05_set_preinit_iface
...............
one,r35-mini)
ip link set eth1 up
ifname=eth1
;;
..............
cat target/linux/mediatek/image/filogic.mk
..............
define Device/one_r35-mini
DEVICE_VENDOR := one
DEVICE_MODEL := r35-mini
DEVICE_DTS := mt7981b-one-r35-mini
DEVICE_DTS_DIR := ../dts
SUPPORTED_DEVICES += one,r35-mini-snand
DEVICE_PACKAGES := kmod-mt7915e kmod-mt7981-firmware mt7981-wo-firmware kmod-hwmon-pwmfan kmod-usb3 \
kmod-usb-serial-option kmod-usb-net-cdc-ether kmod-usb-net-qmi-wwan
UBINIZE_OPTS := -E 5
BLOCKSIZE := 128k
PAGESIZE := 2048
IMAGE_SIZE := 246272k
KERNEL_IN_UBI := 1
IMAGE/sysupgrade.bin := sysupgrade-tar | append-gl-metadata
endef
TARGET_DEVICES += one_r35-mini
..............
cat target/linux/mediatek/dts/mt7981b-one-r35-mini.dts
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "mt7981.dtsi"
/ {
model = "one r35-mini";
compatible = "one,r35-mini", "mediatek,mt7981";
aliases {
label-mac-device = &gmac0;
led-boot = &led_power;
led-failsafe = &led_power;
led-running = &led_power;
led-upgrade = &led_power;
serial0 = &uart0;
};
chosen {
stdout-path = "serial0:115200n8";
bootargs = "console=ttyS0,115200n8 root=PARTLABEL=rootfs rootwait";
};
gpio-keys {
compatible = "gpio-keys";
user {
label = "user";
linux,code = <BTN_0>;
gpios = <&pio 0 GPIO_ACTIVE_HIGH>;
};
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&pio 1 GPIO_ACTIVE_LOW>;
};
};
gpio-export {
compatible = "gpio-export";
module-reset {
gpio-export,name = "5g-reset";
gpio-export,output = <1>; /* Default high (release reset) */
gpios = <&pio 11 GPIO_ACTIVE_HIGH>; /* GPIO 11 */
};
mode-switch {
gpio-export,name = "usb-pcie-switch";
gpio-export,output = <0>; /* Default low (PCIE mode) */
gpios = <&pio 12 GPIO_ACTIVE_LOW>; /* GPIO 12, low for PCIE, high for USB3 */
};
module-power {
gpio-export,name = "5g-power";
gpio-export,output = <1>; /* Default high (power on) */
gpios = <&pio 13 GPIO_ACTIVE_HIGH>; /* GPIO 13 */
};
};
leds {
compatible = "gpio-leds";
led_power: sys {
label = "green:sys";
gpios = <&pio 9 GPIO_ACTIVE_LOW>;
};
wifi2g {
label = "green:wifi2g";
gpios = <&pio 34 GPIO_ACTIVE_LOW>;
};
wifi5g {
label = "green:wifi5g";
gpios = <&pio 35 GPIO_ACTIVE_LOW>;
};
};
};
&uart0 {
status = "okay";
};
&watchdog {
status = "okay";
};
&mdio_bus {
reset-gpios = <&pio 39 GPIO_ACTIVE_LOW>;
reset-delay-us = <600>;
reset-post-delay-us = <20000>;
phy5: ethernet-phy@5 {
reg = <5>;
compatible = "ethernet-phy-ieee802.3-c45";
};
};
ð {
status = "okay";
gmac0: mac@0 {
compatible = "mediatek,eth-mac";
reg = <0>;
phy-mode = "2500base-x";
phy-handle = <&phy5>;
nvmem-cells = <&macaddr_factory_a 0>;
nvmem-cell-names = "mac-address";
};
gmac1: mac@1 {
compatible = "mediatek,eth-mac";
reg = <1>;
phy-mode = "gmii";
phy-handle = <&int_gbe_phy>;
nvmem-cells = <&macaddr_factory_a 1>;
nvmem-cell-names = "mac-address";
};
};
&mdio_bus {
reset-gpios = <&pio 39 GPIO_ACTIVE_LOW>;
reset-delay-us = <600>;
reset-post-delay-us = <20000>;
phy0: ethernet-phy@5 {
reg = <5>;
compatible = "ethernet-phy-ieee802.3-c45";
phy-mode = "2500base-x";
};
};
&spi0 {
pinctrl-names = "default";
pinctrl-0 = <&spi0_flash_pins>;
status = "okay";
spi_nand: flash@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "spi-nand";
reg = <0>;
spi-max-frequency = <52000000>;
spi-cal-enable;
spi-cal-mode = "read-data";
spi-cal-datalen = <7>;
spi-cal-data = /bits/ 8 <0x53 0x50 0x49 0x4E 0x41 0x4E 0x44>;
spi-cal-addrlen = <5>;
spi-cal-addr = /bits/ 32 <0x0 0x0 0x0 0x0 0x0>;
spi-tx-bus-width = <4>;
spi-rx-bus-width = <4>;
mediatek,nmbm;
mediatek,bmt-max-ratio = <1>;
mediatek,bmt-max-reserved-blocks = <64>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "BL2";
reg = <0x000000 0x0080000>; /* 512 KB */
read-only;
};
partition@80000 {
label = "u-boot-env";
reg = <0x0080000 0x0040000>; /* 256 KB */
};
factory: partition@c0000 {
label = "Factory";
reg = <0x00c0000 0x0100000>; /* 1 MB */
read-only;
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
macaddr: macaddr@a {
compatible = "mac-base";
reg = <0xa 0x6>;
#nvmem-cell-cells = <1>;
};
};
};
partition@1c0000 {
label = "FIP";
reg = <0x01c0000 0x0100000>; /* 1 MB */
read-only;
};
partition@2c0000 {
label = "log";
reg = <0x02c0000 0x0040000>; /* 256 KB */
};
partition@300000 {
label = "ubi";
reg = <0x0300000 0x04C00000>; /* 76 MB */
compatible = "linux,ubi";
};
};
};
};
&pio {
spi0_flash_pins: spi0-pins {
mux {
function = "spi";
groups = "spi0", "spi0_wp_hold";
};
};
pcie_pins: pcie-pins {
mux {
function = "pcie";
groups = "pcie_pereset", "pcie_clk", "pcie_wake";
};
};
};
&usb_phy {
status = "okay";
};
&xhci {
phys = <&u2port0 PHY_TYPE_USB2>;
vusb33-supply = <®_3p3v>;
vbus-supply = <®_5v>;
mediatek,u3p-dis-msk = <0x01>;
status = "okay";
};
&pcie {
pinctrl-names = "default";
pinctrl-0 = <&pcie_pins>;
status = "okay";
};
&wifi {
mediatek,mtd-eeprom = <&factory 0x0>;
status = "okay";
};
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
make -j 1 V=s
/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981b-gatonetworks-gdsp.dtb: Warning (spi_bus_reg): Failed prerequisite 'reg_format'
../dts/mt7981b-gatonetworks-gdsp.dts:246.22-250.4: Warning (avoid_default_addr_size): /soc/wifi@18000000/band@0: Relying on default #address-cells value
../dts/mt7981b-gatonetworks-gdsp.dts:246.22-250.4: Warning (avoid_default_addr_size): /soc/wifi@18000000/band@0: Relying on default #size-cells value
../dts/mt7981b-gatonetworks-gdsp.dts:252.9-256.4: Warning (avoid_default_addr_size): /soc/wifi@18000000/band@1: Relying on default #address-cells value
../dts/mt7981b-gatonetworks-gdsp.dts:252.9-256.4: Warning (avoid_default_addr_size): /soc/wifi@18000000/band@1: Relying on default #size-cells value
rm -f /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981b-dlink-aquila-pro-ai-m30-a1.dtb.tmp
rm -f /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981a-edgecore-eap111.dtb.tmp
rm -f /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981b-gatonetworks-gdsp.dtb.tmp
aarch64-openwrt-linux-musl-cpp -nostdinc -x assembler-with-cpp -I/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/arch/arm64/boot/dts/mediatek -I/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/arch/arm64/boot/dts/mediatek/include -I/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/include/ -I/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/scripts/dtc/include-prefixes -undef -D__DTS__ -o /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981b-glinet-gl-mt3000.dtb.tmp ../dts/mt7981b-glinet-gl-mt3000.dts
aarch64-openwrt-linux-musl-cpp -nostdinc -x assembler-with-cpp -I/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/arch/arm64/boot/dts/mediatek -I/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/arch/arm64/boot/dts/mediatek/include -I/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/include/ -I/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/scripts/dtc/include-prefixes -undef -D__DTS__ -o /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981b-one-r35-mini.dtb.tmp ../dts/mt7981b-one-r35-mini.dts
aarch64-openwrt-linux-musl-cpp -nostdinc -x assembler-with-cpp -I/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/arch/arm64/boot/dts/mediatek -I/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/arch/arm64/boot/dts/mediatek/include -I/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/include/ -I/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/scripts/dtc/include-prefixes -undef -D__DTS__ -o /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7986a-glinet-gl-mt6000.dtb.tmp ../dts/mt7986a-glinet-gl-mt6000.dts
/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/scripts/dtc/dtc -O dtb -i../dts/ -Wno-interrupt_provider -Wno-unique_unit_address -Wno-unit_address_vs_reg -Wno-avoid_unnecessary_addr_size -Wno-alias_paths -Wno-graph_child_address -Wno-simple_bus_reg -@ -o /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981b-glinet-gl-mt2500.dtb /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981b-glinet-gl-mt2500.dtb.tmp
../dts/mt7981b-glinet-gl-mt2500.dts:158.3-13: Warning (reg_format): /soc/mmc@11230000/card@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981b-glinet-gl-mt2500.dtb: Warning (pci_device_reg): Failed prerequisite 'reg_format'
/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981b-glinet-gl-mt2500.dtb: Warning (pci_device_bus_num): Failed prerequisite 'reg_format'
/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981b-glinet-gl-mt2500.dtb: Warning (i2c_bus_reg): Failed prerequisite 'reg_format'
/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981b-glinet-gl-mt2500.dtb: Warning (spi_bus_reg): Failed prerequisite 'reg_format'
../dts/mt7981b-glinet-gl-mt2500.dts:156.9-204.4: Warning (avoid_default_addr_size): /soc/mmc@11230000/card@0: Relying on default #address-cells value
../dts/mt7981b-glinet-gl-mt2500.dts:156.9-204.4: Warning (avoid_default_addr_size): /soc/mmc@11230000/card@0: Relying on default #size-cells value
rm -f /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981b-glinet-gl-mt2500.dtb.tmp
aarch64-openwrt-linux-musl-cpp -nostdinc -x assembler-with-cpp -I/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/arch/arm64/boot/dts/mediatek -I/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/arch/arm64/boot/dts/mediatek/include -I/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/include/ -I/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/scripts/dtc/include-prefixes -undef -D__DTS__ -o /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981a-glinet-gl-x3000.dtb.tmp ../dts/mt7981a-glinet-gl-x3000.dts
/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/scripts/dtc/dtc -O dtb -i../dts/ -Wno-interrupt_provider -Wno-unique_unit_address -Wno-unit_address_vs_reg -Wno-avoid_unnecessary_addr_size -Wno-alias_paths -Wno-graph_child_address -Wno-simple_bus_reg -@ -o /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981b-glinet-gl-mt3000.dtb /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981b-glinet-gl-mt3000.dtb.tmp
/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/scripts/dtc/dtc -O dtb -i../dts/ -Wno-interrupt_provider -Wno-unique_unit_address -Wno-unit_address_vs_reg -Wno-avoid_unnecessary_addr_size -Wno-alias_paths -Wno-graph_child_address -Wno-simple_bus_reg -@ -o /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981b-one-r35-mini.dtb /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981b-one-r35-mini.dtb.tmp
/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/scripts/dtc/dtc -O dtb -i../dts/ -Wno-interrupt_provider -Wno-unique_unit_address -Wno-unit_address_vs_reg -Wno-avoid_unnecessary_addr_size -Wno-alias_paths -Wno-graph_child_address -Wno-simple_bus_reg -@ -o /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7986a-glinet-gl-mt6000.dtb /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7986a-glinet-gl-mt6000.dtb.tmp
/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/arch/arm64/boot/dts/mediatek/mt7981.dtsi:351.22-372.5: ERROR (phandle_references): /soc/usb@11200000: Reference to non-existent node or label "reg_5v"
also defined at ../dts/mt7981b-one-r35-mini.dts:240.7-246.3
../dts/mt7981b-one-r35-mini.dts:107.15-114.4: ERROR (phandle_references): /soc/ethernet@15100000/mac@0: Reference to non-existent node or label "macaddr_factory_a"
../dts/mt7981b-one-r35-mini.dts:116.15-123.4: ERROR (phandle_references): /soc/ethernet@15100000/mac@1: Reference to non-existent node or label "macaddr_factory_a"
ERROR: Input tree has errors, aborting (use -f to force output)
make[5]: *** [Makefile:43: /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981b-one-r35-mini.dtb] Error 2
make[5]: *** Waiting for unfinished jobs....
../dts/mt7986a-glinet-gl-mt6000.dts:319.3-13: Warning (reg_format): /soc/mmc@11230000/card@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7986a-glinet-gl-mt6000.dtb: Warning (pci_device_reg): Failed prerequisite 'reg_format'
/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7986a-glinet-gl-mt6000.dtb: Warning (pci_device_bus_num): Failed prerequisite 'reg_format'
/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7986a-glinet-gl-mt6000.dtb: Warning (i2c_bus_reg): Failed prerequisite 'reg_format'
/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7986a-glinet-gl-mt6000.dtb: Warning (spi_bus_reg): Failed prerequisite 'reg_format'
../dts/mt7986a-glinet-gl-mt6000.dts:317.9-353.4: Warning (avoid_default_addr_size): /soc/mmc@11230000/card@0: Relying on default #address-cells value
../dts/mt7986a-glinet-gl-mt6000.dts:317.9-353.4: Warning (avoid_default_addr_size): /soc/mmc@11230000/card@0: Relying on default #size-cells value
rm -f /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981b-glinet-gl-mt3000.dtb.tmp
rm -f /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7986a-glinet-gl-mt6000.dtb.tmp
/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.65/scripts/dtc/dtc -O dtb -i../dts/ -Wno-interrupt_provider -Wno-unique_unit_address -Wno-unit_address_vs_reg -Wno-avoid_unnecessary_addr_size -Wno-alias_paths -Wno-graph_child_address -Wno-simple_bus_reg -@ -o /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981a-glinet-gl-x3000.dtb /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981a-glinet-gl-x3000.dtb.tmp
../dts/mt7981a-glinet-gl-x3000-xe3000-common.dtsi:142.3-13: Warning (reg_format): /soc/mmc@11230000/card@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981a-glinet-gl-x3000.dtb: Warning (pci_device_reg): Failed prerequisite 'reg_format'
/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981a-glinet-gl-x3000.dtb: Warning (pci_device_bus_num): Failed prerequisite 'reg_format'
/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981a-glinet-gl-x3000.dtb: Warning (i2c_bus_reg): Failed prerequisite 'reg_format'
/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981a-glinet-gl-x3000.dtb: Warning (spi_bus_reg): Failed prerequisite 'reg_format'
../dts/mt7981a-glinet-gl-x3000-xe3000-common.dtsi:140.9-176.4: Warning (avoid_default_addr_size): /soc/mmc@11230000/card@0: Relying on default #address-cells value
../dts/mt7981a-glinet-gl-x3000-xe3000-common.dtsi:140.9-176.4: Warning (avoid_default_addr_size): /soc/mmc@11230000/card@0: Relying on default #size-cells value
rm -f /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/image-mt7981a-glinet-gl-x3000.dtb.tmp
make[5]: Leaving directory '/home/ubuntu/openwrt/target/linux/mediatek/image'
make[4]: *** [Makefile:17: install] Error 2
make[4]: Leaving directory '/home/ubuntu/openwrt/target/linux/mediatek'
make[3]: *** [Makefile:12: install] Error 2
make[3]: Leaving directory '/home/ubuntu/openwrt/target/linux'
time: target/linux/install#43.66#7.73#47.75
ERROR: target/linux failed to build.
make[2]: *** [target/Makefile:32: target/linux/install] Error 1
make[2]: Leaving directory '/home/ubuntu/openwrt'
make[1]: *** [target/Makefile:26: /home/ubuntu/openwrt/staging_dir/target-aarch64_cortex-a53_musl/stamp/.target_install] Error 2
make[1]: Leaving directory '/home/ubuntu/openwrt'
make: *** [/home/ubuntu/openwrt/include/toplevel.mk:233: world] Error 2
I wrote it according to gpio, but the compilation reported an error. What is the problem? Does anyone know what the problem is? Thank you