Initial commit
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled

This commit is contained in:
domenico
2025-06-24 12:51:15 +02:00
commit 27c9d80f51
10493 changed files with 1885777 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
. /lib/functions/uci-defaults.sh
board_config_update
board=$(board_name)
case "$board" in
dongwon,dw02-412h-64m|\
dongwon,dw02-412h-128m)
ucidef_set_led_switch "wan" "WAN" "green:wan" "switch0" "0x02"
;;
glinet,gl-ar300m-nand|\
glinet,gl-ar300m-nor)
ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth0"
;;
glinet,gl-xe300)
ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth1"
ucidef_set_led_switch "lan" "LAN" "green:lan" "switch0" "0x10"
ucidef_set_led_netdev "3gnet" "LTE" "green:lte" "wwan0"
;;
netgear,pgzng1)
ucidef_set_led_wlan "wlan" "WLAN" "green:wlan" "phy0tpt"
ucidef_set_led_switch "wan" "WAN" "green:wan-1" "switch0" "0x02" "0xf" "link tx rx"
ucidef_set_led_switch "wan-green" "wan link" "green:wan-0" "switch0" "0x02" "0xf" "link"
ucidef_set_led_switch "wan-amber" "wan act" "amber:wan" "switch0" "0x02" "0xf" "tx rx"
ucidef_set_led_netdev "lan-green" "lan link" "green:lan" "eth1" "link"
ucidef_set_led_netdev "lan-amber" "lan act" "amber:lan" "eth1" "tx rx"
;;
netgear,r6100)
ucidef_set_led_netdev "wan-green" "WAN (green)" "green:wan" "eth1"
;;
netgear,wndr3700-v4|\
netgear,wndr4300|\
netgear,wndr4300sw|\
netgear,wndr4300-v2|\
netgear,wndr4500-v3)
ucidef_set_led_switch "wan-amber" "WAN (amber)" "amber:wan" "switch0" "0x20"
;;
esac
board_config_flush
exit 0

View File

@@ -0,0 +1,129 @@
. /lib/functions/system.sh
. /lib/functions/uci-defaults.sh
ath79_setup_interfaces()
{
local board="$1"
case "$board" in
aerohive,hiveap-121|\
meraki,mr18)
ucidef_set_interface_lan "eth0"
;;
domywifi,dw33d)
ucidef_add_switch "switch0" \
"0@eth0" "1:wan" "2:lan" "3:lan" "4:lan" "5:lan" "6@eth1"
;;
dongwon,dw02-412h-64m|\
dongwon,dw02-412h-128m)
ucidef_add_switch "switch0" \
"0@eth0" "2:lan:4" "3:lan:3" "4:lan:2" "5:lan:1" "1:wan"
;;
glinet,gl-ar750s-nor|\
glinet,gl-ar750s-nor-nand)
ucidef_add_switch "switch0" \
"0@eth0" "2:lan:2" "3:lan:1" "1:wan"
;;
glinet,gl-e750|\
zte,mf282)
ucidef_set_interface_lan "eth0"
ucidef_set_interface "wan" device "/dev/cdc-wdm0" protocol "qmi"
;;
glinet,gl-xe300)
ucidef_set_interface_wan "eth1"
ucidef_add_switch "switch0" \
"0@eth0" "4:lan"
;;
glinet,gl-x1200-nor|\
glinet,gl-x1200-nor-nand)
ucidef_add_switch "switch0" \
"0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan"
;;
linksys,ea4500-v3)
ucidef_add_switch "switch0" \
"6@eth1" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "0@eth0"
;;
netgear,pgzng1)
ucidef_set_interfaces_lan_wan "eth1" "eth0"
;;
netgear,r6100)
ucidef_set_interface_wan "eth1"
ucidef_add_switch "switch0" \
"0@eth0" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"
;;
netgear,wndr3700-v4|\
netgear,wndr4300|\
netgear,wndr4300sw|\
netgear,wndr4300-v2)
ucidef_add_switch "switch0" \
"0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan"
;;
netgear,wndr4500-v3)
ucidef_add_switch "switch0" \
"0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
;;
netgear,wndr4300tn)
ucidef_add_switch "switch0" \
"0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
;;
zte,mf281)
ucidef_add_switch "switch0" \
"0@eth0" "5:lan"
;;
zte,mf286|\
zte,mf286a|\
zte,mf286r)
ucidef_add_switch "switch0" \
"0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "5:lan:1"
;;
zyxel,emg2926-q10a|\
zyxel,nbg6716)
ucidef_add_switch "switch0" \
"0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth1"
;;
*)
ucidef_set_interfaces_lan_wan "eth0" "eth1"
;;
esac
}
ath79_setup_macs()
{
local board="$1"
case "$board" in
dongwon,dw02-412h-64m|\
dongwon,dw02-412h-128m)
wan_mac=$(mtd_get_mac_binary art 0x0)
label_mac=$wan_mac
;;
glinet,gl-x1200-nor|\
glinet,gl-x1200-nor-nand)
wan_mac=$(mtd_get_mac_binary art 0x0)
lan_mac=$(macaddr_add "$wan_mac" 1)
;;
meraki,mr18)
lan_mac=$(mtd_get_mac_binary_ubi board-config 102)
;;
netgear,wndr3700-v4|\
netgear,wndr4300|\
netgear,wndr4300sw|\
netgear,wndr4300-v2|\
netgear,wndr4500-v3)
wan_mac=$(mtd_get_mac_binary caldata 0x6)
;;
esac
[ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
[ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
[ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
}
board_config_update
board=$(board_name)
ath79_setup_interfaces $board
ath79_setup_macs $board
board_config_flush
exit 0

View File

@@ -0,0 +1,20 @@
#
# Copyright (C) 2022 OpenWrt.org
#
. /lib/functions/uci-defaults.sh
board_config_update
board=$(board_name)
case "$board" in
zte,mf286a|\
zte,mf286r)
ucidef_add_gpio_switch "power_btn_block" "Power button blocker" "532" "0"
;;
esac
board_config_flush
exit 0

View File

@@ -0,0 +1,15 @@
. /lib/functions.sh
. /lib/functions/uci-defaults.sh
board_config_update
case "$(board_name)" in
netgear,wndr4300-v2|\
netgear,wndr4500-v3)
ucidef_set_compat_version "1.1"
;;
esac
board_config_flush
exit 0

View File

@@ -0,0 +1,61 @@
#!/bin/sh
[ -e /lib/firmware/$FIRMWARE ] && exit 0
. /lib/functions/caldata.sh
board=$(board_name)
case "$FIRMWARE" in
"ath9k-eeprom-ahb-18100000.wmac.bin")
case $board in
meraki,mr18)
. /lib/upgrade/nand.sh
if [ -n "$(nand_find_volume ubi0 caldata)" ]; then
caldata_extract_ubi "caldata" 0x1000 0x440
else
caldata_extract "odm-caldata" 0x1000 0x440
fi
ath9k_patch_mac $(macaddr_add $(mtd_get_mac_binary_ubi board-config 102) 1)
;;
*)
caldata_die "board $board is not supported yet"
;;
esac
;;
"ath9k-eeprom-pci-0000:00:00.0.bin")
case $board in
meraki,mr18)
. /lib/upgrade/nand.sh
if [ -n "$(nand_find_volume ubi0 caldata)" ]; then
caldata_extract_ubi "caldata" 0x5000 0x440
else
caldata_extract "odm-caldata" 0x5000 0x440
fi
ath9k_patch_mac $(macaddr_add $(mtd_get_mac_binary_ubi board-config 102) 2)
;;
*)
caldata_die "board $board is not supported yet"
;;
esac
;;
"ath9k-eeprom-pci-0000:01:00.0.bin")
case $board in
meraki,mr18)
. /lib/upgrade/nand.sh
if [ -n "$(nand_find_volume ubi0 caldata)" ]; then
caldata_extract_ubi "caldata" 0x9000 0x440
else
caldata_extract "odm-caldata" 0x9000 0x440
fi
ath9k_patch_mac $(macaddr_add $(mtd_get_mac_binary_ubi board-config 102) 3)
;;
*)
caldata_die "board $board is not supported yet"
;;
esac
;;
esac

View File

@@ -0,0 +1,26 @@
[ "$ACTION" = "add" ] || exit 0
PHYNBR=${DEVPATH##*/phy}
[ -n $PHYNBR ] || exit 0
. /lib/functions.sh
. /lib/functions/system.sh
board=$(board_name)
case $board in
glinet,gl-e750)
# Set mac address for 5g device
[ "$PHYNBR" -eq 0 ] && \
macaddr_add $(mtd_get_mac_binary art 0x0) 2 > /sys${DEVPATH}/macaddress
;;
zyxel,emg2926-q10a|\
zyxel,nbg6716)
ethaddr=$(mtd_get_mac_ascii u-boot-env ethaddr)
[ "$PHYNBR" -eq 0 ] && \
macaddr_add $ethaddr 1 > /sys${DEVPATH}/macaddress
[ "$PHYNBR" -eq 1 ] && \
echo -n $ethaddr > /sys${DEVPATH}/macaddress
;;
esac

View File

@@ -0,0 +1,17 @@
#!/bin/sh /etc/rc.common
# SPDX-License-Identifier: GPL-2.0-only
START=11
# To support LEDs on boards that have drivers loaded after rootfs, let's
# re-run diag.sh AFTER kmodloader has finished, but before boot is complete.
# This is useful for userspace LED drivers, LEDs that rely on i2c, etc.
boot() {
case $(board_name) in
netgear,pgzng1)
. /etc/diag.sh
set_led_state preinit_regular
;;
esac
}

View File

@@ -0,0 +1,16 @@
#!/bin/sh /etc/rc.common
# SPDX-License-Identifier: GPL-2.0-only
START=99
boot() {
case $(board_name) in
glinet,gl-ar300m-nand)
fw_setenv bootcount 0
;;
linksys,ea4500-v3)
[ $(fw_printenv -n auto_recovery) = yes ] && \
fw_setenv auto_recovery no
;;
esac
}

View File

@@ -0,0 +1,13 @@
. /lib/functions.sh
. /lib/functions/migrations.sh
board=$(board_name)
case "$board" in
esac
remove_devicename_leds
migrations_apply system
exit 0

View File

@@ -0,0 +1,15 @@
. /lib/functions.sh
. /lib/functions/system.sh
preinit_set_mac_address() {
case $(board_name) in
zyxel,emg2926-q10a|\
zyxel,nbg6716)
ethaddr=$(mtd_get_mac_ascii u-boot-env ethaddr)
ip link set dev eth0 address $(macaddr_add $ethaddr 2)
ip link set dev eth1 address $(macaddr_add $ethaddr 3)
;;
esac
}
boot_hook_add preinit_main preinit_set_mac_address

View File

@@ -0,0 +1,90 @@
# SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) 2019 Jeff Kletsky
#
glinet_using_boot_dev_switch() {
if [ "$(fw_printenv -n boot_dev 2>/dev/null)" = "on" ] ; then
>&2 echo "NOTE: boot_dev=on; use switch to control boot partition"
true
else
false
fi
}
glinet_set_next_boot_nand() {
mkdir -p /var/lock
! glinet_using_boot_dev_switch && \
fw_setenv bootcount 0 && \
>&2 echo "Next boot set for NAND"
}
glinet_set_next_boot_nor() {
mkdir -p /var/lock
! glinet_using_boot_dev_switch && \
fw_setenv bootcount 3 && \
>&2 echo "Next boot set for NOR"
}
glinet_nand_nor_do_upgrade() {
set_next_boot_nand() { glinet_set_next_boot_nand; }
set_next_boot_nor() { glinet_set_next_boot_nor; }
nand_nor_do_upgrade "$1"
}
nand_nor_do_upgrade() {
local upgrade_file="$1"
local pn
local found=""
local err
case "$(get_magic_long "$upgrade_file")" in
"27051956") # U-Boot Image Magic
for pn in "nor_${PART_NAME}" "$PART_NAME" ; do # firmware
if [ "$(find_mtd_index "$pn")" ] ; then
PART_NAME="$pn"
found="yes"
break
fi
done
if [ "$found" = "yes" ] ; then
>&2 echo "Running NOR upgrade"
default_do_upgrade "$upgrade_file"
# At this time, default_do_upgrade() exits on error
type set_next_boot_nor >/dev/null && set_next_boot_nor
else
>&2 echo "ERROR: UPGRADE FAILED: Unable to locate '$PART_NAME' or 'nor_${PART_NAME}'"
exit 1
fi
;;
*) # otherwise a file that nand_do_upgrade can process
for pn in "nand_${CI_KERNPART}" "$CI_KERNPART" ; do # kernel
if [ "$(find_mtd_index "$pn")" ] ; then
CI_KERNPART="$pn"
break
fi
done
for pn in "nand_${CI_UBIPART}" "$CI_UBIPART" ; do # ubi
if [ "$(find_mtd_index "$pn")" ] ; then
CI_UBIPART="$pn"
break
fi
done
for pn in "nand_${CI_ROOTPART}" "$CI_ROOTPART" ; do #rootfs
if [ "$(find_mtd_index "$pn")" ] ; then
CI_ROOTPART="$pn"
break
fi
done
>&2 echo "Running NAND upgrade"
# TODO: change order when NAND upgrade offers return
type set_next_boot_nand >/dev/null && set_next_boot_nand
nand_do_upgrade "$upgrade_file"
;;
esac
}

View File

@@ -0,0 +1,33 @@
# Copyright (C) 2011 OpenWrt.org
PART_NAME=firmware
REQUIRE_IMAGE_METADATA=1
platform_check_image() {
return 0
}
RAMFS_COPY_BIN='fw_printenv fw_setenv nandwrite'
RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
platform_do_upgrade() {
local board=$(board_name)
case "$board" in
glinet,gl-ar300m-nand|\
glinet,gl-ar300m-nor)
glinet_nand_nor_do_upgrade "$1"
;;
glinet,gl-ar750s-nor|\
glinet,gl-ar750s-nor-nand|\
glinet,gl-s200-nor|\
glinet,gl-s200-nor-nand|\
glinet,gl-x1200-nor|\
glinet,gl-x1200-nor-nand)
nand_nor_do_upgrade "$1"
;;
*)
nand_do_upgrade "$1"
;;
esac
}

View File

@@ -0,0 +1,31 @@
CONFIG_BCH=y
CONFIG_CRC16=y
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_HASH_INFO=y
CONFIG_CRYPTO_LZO=y
CONFIG_CRYPTO_ZSTD=y
CONFIG_LZO_COMPRESS=y
CONFIG_LZO_DECOMPRESS=y
CONFIG_MTD_NAND_AR934X=y
CONFIG_MTD_NAND_CORE=y
CONFIG_MTD_NAND_ECC=y
CONFIG_MTD_NAND_ECC_SW_BCH=y
# CONFIG_MTD_NAND_RB91X is not set
CONFIG_MTD_RAW_NAND=y
CONFIG_MTD_SPI_NAND=y
CONFIG_MTD_UBI=y
CONFIG_MTD_UBI_BEB_LIMIT=20
CONFIG_MTD_UBI_BLOCK=y
CONFIG_MTD_UBI_WL_THRESHOLD=4096
# CONFIG_PCI_AR71XX is not set
CONFIG_PHY_AR7200_USB=y
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO_RESTART=y
CONFIG_SGL_ALLOC=y
CONFIG_UBIFS_FS=y
CONFIG_XXHASH=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZSTD_COMMON=y
CONFIG_ZSTD_COMPRESS=y
CONFIG_ZSTD_DECOMPRESS=y

View File

@@ -0,0 +1,10 @@
BOARDNAME := Generic devices with NAND flash
FEATURES += nand
DEFAULT_PACKAGES += wpad-basic-mbedtls
define Target/Description
Firmware for boards using Qualcomm Atheros, MIPS-based SoCs
in the ar72xx and subsequent series, with support for NAND flash
endef