The calibration data and mac addresses on this device are stored in the
0:ART partition. It is therefore possible to move the code to handle them
directly to the devicetree instead of the various scripts.
But the actual relevant information about the partition layout is provided
by the bootloader via bootargs (mtdparts) and not via the devicetree
itself. Instead of using a fixed-partition template, the mtd dynamic
partitions support from the upstream kernel is used.
Reported-by: Robert Marko <robert.marko@sartura.hr>
Reviewed-by: Robert Marko <robimarko@gmail.com>
Tested-by: Michaƫl BILCOT <michael.bilcot@gmail.com>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
pakedge,wr-1)
wan_mac=$(macaddr_add $(get_mac_label) 1)
;;
pakedge,wr-1)
wan_mac=$(macaddr_add $(get_mac_label) 1)
;;
- openmesh,a62)
- label_mac="$(mtd_get_mac_binary "0:ART" 0x0)"
- ;;
esac
[ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
esac
[ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
;;
/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
;;
plasmacloud,pa2200)
caldata_extract "0:ART" 0x9000 0x2f20
;;
plasmacloud,pa2200)
caldata_extract "0:ART" 0x9000 0x2f20
;;
/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
;;
cellc,rtl30vw |\
/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
;;
cellc,rtl30vw |\
plasmacloud,pa1200 |\
plasmacloud,pa2200)
caldata_extract "0:ART" 0x1000 0x2f20
plasmacloud,pa1200 |\
plasmacloud,pa2200)
caldata_extract "0:ART" 0x1000 0x2f20
/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
;;
cellc,rtl30vw |\
/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
;;
cellc,rtl30vw |\
plasmacloud,pa1200 |\
plasmacloud,pa2200)
caldata_extract "0:ART" 0x5000 0x2f20
plasmacloud,pa1200 |\
plasmacloud,pa2200)
caldata_extract "0:ART" 0x5000 0x2f20
ip link set dev lan1 address $(macaddr_add "$base_mac" 1)
ip link set dev eth0 address $(macaddr_setbit "$base_mac" 7)
;;
ip link set dev lan1 address $(macaddr_add "$base_mac" 1)
ip link set dev eth0 address $(macaddr_setbit "$base_mac" 7)
;;
- openmesh,a62)
- ip link set dev ethernet1 address $(mtd_get_mac_binary "0:ART" 0x0)
- ip link set dev ethernet2 address $(mtd_get_mac_binary "0:ART" 0x6)
- ;;
mikrotik,wap-ac)
base_mac=$(cat /sys/firmware/mikrotik/hard_config/mac_base)
ip link set dev sw-eth1 address "$base_mac"
mikrotik,wap-ac)
base_mac=$(cat /sys/firmware/mikrotik/hard_config/mac_base)
ip link set dev sw-eth1 address "$base_mac"
led-failsafe = &led_status_green;
led-running = &led_status_green;
led-upgrade = &led_status_green;
led-failsafe = &led_status_green;
led-running = &led_status_green;
led-upgrade = &led_status_green;
+ label-mac-device = &swport4;
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <24000000>;
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <24000000>;
/* partitions are passed via bootloader */
/* partitions are passed via bootloader */
+ partitions {
+ partition-art {
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ label = "0:ART";
+
+ precal_art_1000: precal@1000 {
+ reg = <0x1000 0x2f20>;
+ };
+
+ precal_art_5000: precal@5000 {
+ reg = <0x5000 0x2f20>;
+ };
+
+ precal_art_9000: precal@9000 {
+ reg = <0x9000 0x2f20>;
+ };
+
+ macaddr_gmac0: macaddr@0 {
+ reg = <0x0 0x6>;
+ };
+
+ macaddr_gmac1: macaddr@6 {
+ reg = <0x6 0x6>;
+ };
+ };
+ };
reg = <0x00010000 0 0 0 0>;
qcom,ath10k-calibration-variant = "OM-A62";
ieee80211-freq-limit = <5170000 5350000>;
reg = <0x00010000 0 0 0 0>;
qcom,ath10k-calibration-variant = "OM-A62";
ieee80211-freq-limit = <5170000 5350000>;
+
+ nvmem-cell-names = "pre-calibration";
+ nvmem-cells = <&precal_art_9000>;
&swport4 {
status = "okay";
label = "ethernet1";
&swport4 {
status = "okay";
label = "ethernet1";
+
+ nvmem-cell-names = "mac-address";
+ nvmem-cells = <&macaddr_gmac0>;
};
&swport5 {
status = "okay";
label = "ethernet2";
};
&swport5 {
status = "okay";
label = "ethernet2";
+
+ nvmem-cell-names = "mac-address";
+ nvmem-cells = <&macaddr_gmac1>;
};
&wifi0 {
status = "okay";
qcom,ath10k-calibration-variant = "OM-A62";
};
&wifi0 {
status = "okay";
qcom,ath10k-calibration-variant = "OM-A62";
+
+ nvmem-cell-names = "pre-calibration";
+ nvmem-cells = <&precal_art_1000>;
};
&wifi1 {
status = "okay";
qcom,ath10k-calibration-variant = "OM-A62";
ieee80211-freq-limit = <5470000 5875000>;
};
&wifi1 {
status = "okay";
qcom,ath10k-calibration-variant = "OM-A62";
ieee80211-freq-limit = <5470000 5875000>;
+
+ nvmem-cell-names = "pre-calibration";
+ nvmem-cells = <&precal_art_5000>;