summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtarget/linux/lantiq/base-files/etc/board.d/02_network3
-rw-r--r--target/linux/lantiq/base-files/etc/hotplug.d/firmware/11-ath10k-caldata36
-rw-r--r--target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom3
-rw-r--r--target/linux/lantiq/dts/BTHOMEHUBV5A.dts29
4 files changed, 36 insertions, 35 deletions
diff --git a/target/linux/lantiq/base-files/etc/board.d/02_network b/target/linux/lantiq/base-files/etc/board.d/02_network
index 16b85a8..c2a1fbe 100755
--- a/target/linux/lantiq/base-files/etc/board.d/02_network
+++ b/target/linux/lantiq/base-files/etc/board.d/02_network
@@ -75,7 +75,8 @@ BTHOMEHUBV3A)
;;
BTHOMEHUBV5A)
- wan_mac=$(macaddr_add "$(mtd_get_mac_binary caldata 4364)" 1)
+ lan_mac=$(mtd_get_mac_binary_ubi caldata 4364)
+ wan_mac=$(macaddr_add "$lan_mac" 1)
ucidef_add_switch "switch0" \
"0:lan:3" "1:lan:4" "2:lan:2" "4:lan:1" "6t@eth0"
;;
diff --git a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index dc95da7..2511ed6 100644
--- a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -1,24 +1,31 @@
#!/bin/sh
# Based on ar71xx 11-ath10k-caldata and 10-rt2x00-eeprom
+[ -e /lib/firmware/$FIRMWARE ] && exit 0
+
+. /lib/functions.sh
+. /lib/functions/system.sh
+. /lib/functions/lantiq.sh
+. /lib/upgrade/nand.sh
+
ath10k_caldata_die() {
echo "ath10k caldata: " "$*"
exit 1
}
-ath10k_caldata_extract() {
+ath10k_caldata_extract_ubi() {
local part=$1
local offset=$2
- local mtd
+ local count=$3
+ local ubidev=$(nand_find_ubi $CI_UBIPART)
+ local ubi
- . /lib/functions.sh
+ ubi=$(nand_find_volume $ubidev $part)
+ [ -n "$ubi" ] || \
+ ath10k_caldata_die "no UBI volume found for $part"
- mtd=$(find_mtd_part $part)
- [ -n "$mtd" ] || \
- ath10k_caldata_die "no mtd device found for partition $part"
-
- dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=2116 || \
- ath10k_caldata_die "failed to extract from $mtd"
+ dd if=/dev/$ubi of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \
+ ath10k_caldata_die "failed to extract from $ubi"
}
ath10k_caldata_set_macaddr() {
@@ -28,20 +35,13 @@ ath10k_caldata_set_macaddr() {
conv=notrunc bs=1 seek=6 count=6
}
-[ -e /lib/firmware/$FIRMWARE ] && exit 0
-. /lib/functions.sh
-. /lib/functions/system.sh
-. /lib/functions/lantiq.sh
-
case "$FIRMWARE" in
"ath10k/cal-pci-0000:02:00.0.bin")
board=$(lantiq_board_name)
case $board in
BTHOMEHUBV5A)
- lan_mac=$(mtd_get_mac_binary caldata 4364)
- wifi_mac=$(macaddr_add "$lan_mac" 3)
- ath10k_caldata_extract "caldata" 20480
- ath10k_caldata_set_macaddr $wifi_mac
+ ath10k_caldata_extract_ubi "caldata" 20480 2116
+ ath10k_caldata_set_macaddr $(macaddr_add $(mtd_get_mac_binary_ubi caldata 4364) +3)
;;
*)
ath10k_caldata_die "board $board is not supported yet"
diff --git a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom
index 8185bf1..2776275 100644
--- a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom
+++ b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom
@@ -115,7 +115,8 @@ case "$FIRMWARE" in
ath9k_patch_firmware_mac $(macaddr_add $(mtd_get_mac_ascii uboot-env ethaddr) +2) 268 1 258
;;
BTHOMEHUBV5A)
- ath9k_eeprom_extract "caldata" 4096
+ ath9k_ubi_eeprom_extract "caldata" 4096
+ ath9k_patch_firmware_mac $(macaddr_add $(mtd_get_mac_binary_ubi caldata 4364) +2) 268 0 258
;;
DGN3500*)
ath9k_eeprom_extract "calibration" 61440
diff --git a/target/linux/lantiq/dts/BTHOMEHUBV5A.dts b/target/linux/lantiq/dts/BTHOMEHUBV5A.dts
index e1b3e71..df55456 100644
--- a/target/linux/lantiq/dts/BTHOMEHUBV5A.dts
+++ b/target/linux/lantiq/dts/BTHOMEHUBV5A.dts
@@ -33,6 +33,9 @@
reg = <0x1 0x0 0x2000000>;
#address-cells = <1>;
#size-cells = <1>;
+ nand-on-flash-bbt;
+ nand-ecc-strength = <3>;
+ nand-ecc-step-size = <256>;
partitions {
compatible = "fixed-partitions";
@@ -41,26 +44,25 @@
partition@0 {
label = "u-boot";
- reg = <0x0 0x40000>;
+ reg = <0x0 0xa0000>;
read-only;
};
- partition@40000 {
+ partition@a0000 {
label = "uboot-env";
- reg = <0x40000 0x40000>;
- };
- caldata: partition@80000 {
- label = "caldata";
- reg = <0x80000 0x20000>;
+ reg = <0xa0000 0x20000>;
read-only;
};
- partition@a0000 {
- label = "kernel";
- reg = <0xa0000 0x200000>;
+ partition@c0000 {
+ label = "unused";
+ reg = <0xc0000 0x40000>;
};
- partition@2a0000 {
+ partition@100000 {
label = "ubi";
- reg = <0x2a0000 0x7d60000>;
+ reg = <0x100000 0x7e80000>;
};
+ /*
+ * last 512 KiB are for the bad block table, not writable
+ */
};
};
};
@@ -216,7 +218,6 @@
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
- mtd-mac-address = <&caldata 0x110c>;
lantiq,switch;
ethernet@0 {
@@ -250,8 +251,6 @@
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
- mtd-mac-address = <&caldata 0x110c>;
- mtd-mac-address-increment = <4>;
lantiq,wan;
ethernet@5 {