Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35733master
parent
bd2c77b264
commit
4da13625d5
@ -0,0 +1,5 @@ |
||||
define Package/base-files/install-target |
||||
rm -f $(1)/etc/config/network
|
||||
endef |
||||
|
||||
|
@ -0,0 +1,35 @@ |
||||
#!/bin/sh |
||||
# Copyright (C) 2013 OpenWrt.org |
||||
|
||||
. /lib/functions/leds.sh |
||||
. /lib/mpc85xx.sh |
||||
|
||||
get_status_led() { |
||||
case $(mpc85xx_board_name) in |
||||
tl-wdr4900-v1) |
||||
status_led="tp-link:blue:system" |
||||
;; |
||||
esac |
||||
} |
||||
|
||||
set_state() { |
||||
get_status_led |
||||
|
||||
case "$1" in |
||||
preinit) |
||||
insmod leds-gpio |
||||
insmod ledtrig-default-on |
||||
insmod ledtrig-timer |
||||
|
||||
status_led_blink_preinit |
||||
;; |
||||
|
||||
failsafe) |
||||
status_led_blink_failsafe |
||||
;; |
||||
|
||||
done) |
||||
status_led_on |
||||
;; |
||||
esac |
||||
} |
@ -0,0 +1,69 @@ |
||||
#!/bin/sh |
||||
|
||||
FW_FILE="/lib/firmware/$FIRMWARE" |
||||
|
||||
ath9k_eeprom_die() { |
||||
echo "ath9k eeprom: " "$*" >&2 |
||||
exit 1 |
||||
} |
||||
|
||||
ath9k_eeprom_extract() { |
||||
local part=$1 |
||||
local offset=$2 |
||||
local count=$3 |
||||
local mtd |
||||
|
||||
. /lib/functions.sh |
||||
|
||||
mtd=$(find_mtd_chardev $part) |
||||
[ -n "$mtd" ] || \ |
||||
ath9k_eeprom_die "no mtd device found for partition $part" |
||||
|
||||
dd if=$mtd bs=$offset skip=1 count=1 2>/dev/null | dd of=$FW_FILE bs=$count count=1 2>/dev/null || \ |
||||
ath9k_eeprom_die "failed to extract from $mtd" |
||||
} |
||||
|
||||
tpl_set_wireless_mac() |
||||
{ |
||||
local offset=$1 |
||||
local mac |
||||
|
||||
. /lib/functions.sh |
||||
|
||||
mac=$(mtd_get_mac_binary u-boot 326656) |
||||
mac=$(macaddr_add $mac $offset) |
||||
|
||||
macaddr_2bin $mac | dd bs=1 count=6 seek=2 conv=notrunc of=$FW_FILE 2>/dev/null |
||||
} |
||||
|
||||
[ -e $FW_FILE ] && exit 0 |
||||
|
||||
. /lib/mpc85xx.sh |
||||
|
||||
board=$(mpc85xx_board_name) |
||||
|
||||
case "$FIRMWARE" in |
||||
"pci_wmac0.eeprom") |
||||
case $board in |
||||
tl-wdr4900-v1) |
||||
ath9k_eeprom_extract "caldata" 4096 2048 |
||||
tpl_set_wireless_mac 0 |
||||
;; |
||||
*) |
||||
ath9k_eeprom_die "board $board is not supported yet" |
||||
;; |
||||
esac |
||||
;; |
||||
|
||||
"pci_wmac1.eeprom") |
||||
case $board in |
||||
tl-wdr4900-v1) |
||||
ath9k_eeprom_extract "caldata" 20480 2048 |
||||
tpl_set_wireless_mac -1 |
||||
;; |
||||
*) |
||||
ath9k_eeprom_die "board $board is not supported yet" |
||||
;; |
||||
esac |
||||
;; |
||||
esac |
@ -0,0 +1,2 @@ |
||||
::sysinit:/etc/init.d/rcS S boot |
||||
::shutdown:/etc/init.d/rcS K shutdown |
@ -0,0 +1,27 @@ |
||||
#!/bin/sh |
||||
# |
||||
# Copyright (C) 2011 OpenWrt.org |
||||
# |
||||
|
||||
enable_console_login() { |
||||
local cons=$1 |
||||
local initline="$cons::askfirst:/bin/ash --login" |
||||
|
||||
grep -qs "^$initline" /etc/inittab || { |
||||
echo "$initline" >> /etc/inittab |
||||
sync |
||||
kill -HUP 1 |
||||
} |
||||
} |
||||
|
||||
inittab_console_fixup() { |
||||
for cons in ttyS0 ttyS1; do |
||||
grep -qs "console=$cons" /proc/cmdline && { |
||||
enable_console_login $cons |
||||
} |
||||
done |
||||
} |
||||
|
||||
inittab_console_fixup |
||||
|
||||
exit 0 |
@ -0,0 +1,49 @@ |
||||
#!/bin/sh |
||||
# |
||||
# Copyright (C) 2013 OpenWrt.org |
||||
# |
||||
|
||||
tplink_set_mac() |
||||
{ |
||||
local cfg=$1 |
||||
local offset=$2 |
||||
local mac |
||||
|
||||
. /lib/functions.sh |
||||
|
||||
mac=$(mtd_get_mac_binary u-boot 326656) |
||||
mac=$(macaddr_add $mac $offset) |
||||
|
||||
ucidef_set_interface_macaddr $cfg $mac |
||||
} |
||||
|
||||
|
||||
[ -e /etc/config/network ] && exit 0 |
||||
|
||||
touch /etc/config/network |
||||
|
||||
. /lib/functions/uci-defaults.sh |
||||
. /lib/mpc85xx.sh |
||||
|
||||
ucidef_set_interface_loopback |
||||
|
||||
board=$(mpc85xx_board_name) |
||||
|
||||
case "$board" in |
||||
tl-wdr4900-v1) |
||||
ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" |
||||
ucidef_add_switch "switch0" "1" "1" |
||||
ucidef_add_switch_vlan "switch0" "1" "0t 2 3 4 5" |
||||
ucidef_add_switch_vlan "switch0" "2" "0t 1" |
||||
tplink_set_mac lan -2 |
||||
tplink_set_mac wan 1 |
||||
;; |
||||
|
||||
*) |
||||
ucidef_set_interfaces_lan_wan "eth0" "eth1" |
||||
;; |
||||
esac |
||||
|
||||
uci commit network |
||||
|
||||
exit 0 |
@ -0,0 +1,39 @@ |
||||
#!/bin/sh |
||||
# |
||||
# Copyright (C) 2013 OpenWrt.org |
||||
# |
||||
|
||||
MPC85XX_BOARD_NAME= |
||||
MPC85XX_MODEL= |
||||
|
||||
mpc85xx_board_detect() { |
||||
local model |
||||
local name |
||||
|
||||
model=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /model/ {print $2}' /proc/cpuinfo) |
||||
|
||||
case "$model" in |
||||
*"TL-WDR4900 v1") |
||||
name="tl-wdr4900-v1" |
||||
;; |
||||
esac |
||||
|
||||
[ -z "$name" ] && name="unknown" |
||||
|
||||
[ -z "$MPC85XX_BOARD_NAME" ] && MPC85XX_BOARD_NAME="$name" |
||||
[ -z "$MPC85XX_MODEL" ] && MPC85XX_MODEL="$model" |
||||
|
||||
[ -e "/tmp/sysinfo/" ] || mkdir -p "/tmp/sysinfo/" |
||||
|
||||
echo "$MPC85XX_BOARD_NAME" > /tmp/sysinfo/board_name |
||||
echo "$MPC85XX_MODEL" > /tmp/sysinfo/model |
||||
} |
||||
|
||||
mpc85xx_board_name() { |
||||
local name |
||||
|
||||
[ -f /tmp/sysinfo/board_name ] && name=$(cat /tmp/sysinfo/board_name) |
||||
[ -z "$name" ] && name="unknown" |
||||
|
||||
echo "$name" |
||||
} |
@ -0,0 +1,9 @@ |
||||
#!/bin/sh |
||||
|
||||
do_mpc85xx() { |
||||
. /lib/mpc85xx.sh |
||||
|
||||
mpc85xx_board_detect |
||||
} |
||||
|
||||
boot_hook_add preinit_main do_mpc85xx |
@ -0,0 +1,85 @@ |
||||
# |
||||
# Copyright (C) 2011 OpenWrt.org |
||||
# |
||||
|
||||
. /lib/mpc85xx.sh |
||||
|
||||
PART_NAME=firmware |
||||
RAMFS_COPY_DATA=/lib/mpc85xx.sh |
||||
|
||||
tplink_get_hwid() { |
||||
local part |
||||
|
||||
part=$(find_mtd_part u-boot) |
||||
[ -z "$part" ] && return 1 |
||||
|
||||
dd if=$part bs=4 count=1 skip=81728 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"' |
||||
} |
||||
|
||||
tplink_get_image_hwid() { |
||||
get_image "$@" | dd bs=4 count=1 skip=16 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"' |
||||
} |
||||
|
||||
tplink_get_image_boot_size() { |
||||
get_image "$@" | dd bs=4 count=1 skip=37 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"' |
||||
} |
||||
|
||||
platform_check_image() { |
||||
local board=$(mpc85xx_board_name) |
||||
local magic="$(get_magic_long "$1")" |
||||
|
||||
[ "$ARGC" -gt 1 ] && return 1 |
||||
|
||||
case $board in |
||||
tl-wdr4900-v1) |
||||
[ "$magic" != "01000000" ] && { |
||||
echo "Invalid image type." |
||||
return 1 |
||||
} |
||||
|
||||
local hwid |
||||
local imageid |
||||
|
||||
hwid=$(tplink_get_hwid) |
||||
imageid=$(tplink_get_image_hwid "$1") |
||||
|
||||
[ "$hwid" != "$imageid" ] && { |
||||
echo "Invalid image, hardware ID mismatch, hw:$hwid image:$imageid." |
||||
return 1 |
||||
} |
||||
|
||||
local boot_size |
||||
|
||||
boot_size=$(tplink_get_image_boot_size "$1") |
||||
[ "$boot_size" != "00000000" ] && { |
||||
echo "Invalid image, it contains a bootloader." |
||||
return 1 |
||||
} |
||||
|
||||
return 0 |
||||
;; |
||||
esac |
||||
|
||||
echo "Sysupgrade is not yet supported on $board." |
||||
return 1 |
||||
} |
||||
|
||||
platform_do_upgrade() { |
||||
local board=$(mpc85xx_board_name) |
||||
|
||||
case "$board" in |
||||
*) |
||||
default_do_upgrade "$ARGV" |
||||
;; |
||||
esac |
||||
} |
||||
|
||||
disable_watchdog() { |
||||
killall watchdog |
||||
( ps | grep -v 'grep' | grep '/dev/watchdog' ) && { |
||||
echo 'Could not disable watchdog' |
||||
return 1 |
||||
} |
||||
} |
||||
|
||||
append sysupgrade_pre_upgrade disable_watchdog |
Loading…
Reference in new issue