Initial commit

This commit is contained in:
domenico
2025-06-24 13:14:22 +02:00
commit 4002f145fc
9002 changed files with 1731834 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
. /lib/functions/uci-defaults.sh
board_config_update
board=$(board_name)
case "$board" in
glinet,gl-ar300m-nand|\
glinet,gl-ar300m-nor)
ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth0"
;;
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,70 @@
. /lib/functions/system.sh
. /lib/functions/uci-defaults.sh
ath79_setup_interfaces()
{
local board="$1"
case "$board" in
aerohive,hiveap-121|\
glinet,gl-e750)
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"
;;
glinet,gl-ar750s-nor|\
glinet,gl-ar750s-nor-nand)
ucidef_add_switch "switch0" \
"0@eth0" "2:lan:2" "3:lan:1" "1:wan"
;;
netgear,wndr3700-v4|\
netgear,wndr4300|\
netgear,wndr4300sw|\
netgear,wndr4300-v2|\
netgear,wndr4500-v3)
ucidef_add_switch "switch0" \
"0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan"
;;
netgear,wndr4300tn)
ucidef_add_switch "switch0" \
"0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
;;
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
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,43 @@
#!/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
8dev,rambutan)
caldata_extract "caldata" 0x1000 0x800
;;
netgear,wndr3700-v4|\
netgear,wndr4300|\
netgear,wndr4300sw|\
netgear,wndr4300tn|\
netgear,wndr4300-v2|\
netgear,wndr4500-v3)
caldata_extract "caldata" 0x1000 0x440
;;
*)
caldata_die "board $board is not supported yet"
;;
esac
;;
"ath9k-eeprom-pci-0000:00:00.0.bin")
case $board in
netgear,wndr3700-v4|\
netgear,wndr4300|\
netgear,wndr4300sw|\
netgear,wndr4300tn|\
netgear,wndr4300-v2|\
netgear,wndr4500-v3)
caldata_extract "caldata" 0x5000 0x440
;;
*)
caldata_die "board $board is not supported yet"
;;
esac
;;
esac

View File

@@ -0,0 +1,30 @@
#!/bin/sh
[ -e /lib/firmware/$FIRMWARE ] && exit 0
. /lib/functions/caldata.sh
board=$(board_name)
case "$FIRMWARE" in
"ath10k/cal-pci-0000:00:00.0.bin")
case $board in
domywifi,dw33d)
caldata_extract "art" 0x5000 0x844
ath10k_patch_mac $(mtd_get_mac_binary art 0x12)
;;
glinet,gl-ar750s-nor|\
glinet,gl-ar750s-nor-nand)
caldata_extract "art" 0x5000 0x844
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0x0) 1)
;;
zyxel,nbg6716)
caldata_extract "art" 0x5000 0x844
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) 1)
;;
esac
;;
*)
exit 1
;;
esac

View File

@@ -0,0 +1,23 @@
[ "$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,nbg6716)
# Set mac address for 2.4g device
[ "$PHYNBR" -eq 1 ] && \
mtd_get_mac_ascii u-boot-env ethaddr > /sys${DEVPATH}/macaddress
;;
esac

View File

@@ -0,0 +1,12 @@
#!/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
;;
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,14 @@
. /lib/functions.sh
. /lib/functions/system.sh
preinit_set_mac_address() {
case $(board_name) in
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,29 @@
# 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)
nand_nor_do_upgrade "$1"
;;
*)
nand_do_upgrade "$1"
;;
esac
}

View File

@@ -0,0 +1,22 @@
CONFIG_CRC16=y
CONFIG_CRYPTO_ACOMP2=y
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_HASH_INFO=y
CONFIG_CRYPTO_LZO=y
CONFIG_LZO_COMPRESS=y
CONFIG_LZO_DECOMPRESS=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_AR934X=y
CONFIG_MTD_NAND_CORE=y
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_SGL_ALLOC=y
CONFIG_UBIFS_FS=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y

View File

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