hard_config {
read-only;
+
+ nvmem-layout {
+ compatible = "mikrotik,routerboot-nvmem";
+
+ macaddr_hard: base-mac-address {
+ #nvmem-cell-cells = <1>;
+ };
+ };
};
partition@10000 {
led-failsafe = &led_usr;
led-running = &led_usr;
led-upgrade = &led_usr;
+ label-mac-device = ðernet;
};
ath9k-leds {
ðernet {
pinctrl-0 = <&mdio_pins>, <&rgmii1_pins>;
+
+ nvmem-cells = <&macaddr_hard 0>;
+ nvmem-cell-names = "mac-address";
};
&switch0 {
compatible = "pci168c,0030";
reg = <0x0000 0 0 0 0>;
qca,no-eeprom;
+ nvmem-cells = <&macaddr_hard 1>;
+ nvmem-cell-names = "mac-address";
gpio-controller;
#gpio-cells = <2>;
};
led-failsafe = &led_usr;
led-running = &led_usr;
led-upgrade = &led_usr;
+ label-mac-device = &gmac1;
};
leds {
status = "okay";
label = "wan";
phy-handle = <ðphy0>;
+
+ nvmem-cells = <&macaddr_hard 0>;
+ nvmem-cell-names = "mac-address";
};
ðphy0 {
led-failsafe = &led_pwr;
led-running = &led_pwr;
led-upgrade = &led_pwr;
+ label-mac-device = &port0;
};
leds {
label = "sfp";
phy-mode = "rgmii-rxid";
phy-handle = <&ephy7>;
+
+ nvmem-cells = <&macaddr_hard 5>;
+ nvmem-cell-names = "mac-address";
};
&i2c {
&switch0 {
ports {
- port@0 {
+ port0: port@0 {
status = "okay";
label = "wan";
+
+ nvmem-cells = <&macaddr_hard 0>;
+ nvmem-cell-names = "mac-address";
};
port@1 {
status = "okay";
label = "lan2";
+
+ nvmem-cells = <&macaddr_hard 1>;
+ nvmem-cell-names = "mac-address";
};
port@2 {
status = "okay";
label = "lan3";
+
+ nvmem-cells = <&macaddr_hard 2>;
+ nvmem-cell-names = "mac-address";
};
port@3 {
status = "okay";
label = "lan4";
+
+ nvmem-cells = <&macaddr_hard 3>;
+ nvmem-cell-names = "mac-address";
};
port@4 {
status = "okay";
label = "lan5";
+
+ nvmem-cells = <&macaddr_hard 4>;
+ nvmem-cell-names = "mac-address";
};
};
};
led-failsafe = &led_usr;
led-running = &led_usr;
led-upgrade = &led_usr;
+ label-mac-device = ðernet;
};
leds {
ðernet {
pinctrl-0 = <&mdio_pins>, <&rgmii1_pins>;
+
+ nvmem-cells = <&macaddr_hard 0>;
+ nvmem-cell-names = "mac-address";
};
&switch0 {
port@0 {
status = "okay";
label = "lan";
+
+ nvmem-cells = <&macaddr_hard 1>;
+ nvmem-cell-names = "mac-address";
};
};
};
led-failsafe = &led_usr;
led-running = &led_usr;
led-upgrade = &led_usr;
+ label-mac-device = &gmac1;
};
leds {
status = "okay";
label = "wan";
phy-handle = <ðphy0>;
+
+ nvmem-cells = <&macaddr_hard 0>;
+ nvmem-cell-names = "mac-address";
};
ðphy0 {
port@1 {
status = "okay";
label = "lan1";
+
+ nvmem-cells = <&macaddr_hard 1>;
+ nvmem-cell-names = "mac-address";
};
port@2 {
status = "okay";
label = "lan2";
+
+ nvmem-cells = <&macaddr_hard 2>;
+ nvmem-cell-names = "mac-address";
};
};
};
wan_mac=$(mtd_get_mac_ascii Config wan_hwaddr)
label_mac=$lan_mac
;;
- mikrotik,ltap-2hnd)
- label_mac=$(cat "/sys/firmware/mikrotik/hard_config/mac_base")
- lan_mac=$label_mac
- ;;
tplink,er605-v2)
CI_UBIPART="firmware"
label_mac=$(mtd_get_mac_uci_config_ubi "tddp")
wwan_mac=$(macaddr_add $label_mac 1)
ucidef_set_interface "wwan0" device "/dev/cdc-wdm0" protocol "qmi" macaddr "$wwan_mac"
;;
- mikrotik,routerboard-750gr3|\
- mikrotik,routerboard-760igs|\
- mikrotik,routerboard-m11g|\
- mikrotik,routerboard-m33g)
- label_mac=$(cat "/sys/firmware/mikrotik/hard_config/mac_base")
- wan_mac=$label_mac
- lan_mac=$(macaddr_add $label_mac 1)
- ;;
ruijie,rg-ew1200g-pro-v1.1)
lan_mac=$(mtd_get_mac_ascii product_info ethaddr)
wan_mac=$(macaddr_add "$lan_mac" 8)
. /lib/functions/caldata.sh
-caldata_mikrotik_ath9k() {
- local offset=$(($1))
- local count=$(($2))
- local macaddr=$3
- local wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data"
-
- caldata_from_file $wlan_data $offset $count /tmp/$FIRMWARE
- ath9k_patch_mac "$macaddr" /tmp/$FIRMWARE
- caldata_sysfsload_from_file /tmp/$FIRMWARE 0x0 $count
- rm -f /tmp/$FIRMWARE
-}
-
board=$(board_name)
case "$FIRMWARE" in
"ath9k-eeprom-pci-0000:01:00.0.bin")
case $board in
mikrotik,ltap-2hnd)
- mac_base="$(cat /sys/firmware/mikrotik/hard_config/mac_base)"
- caldata_mikrotik_ath9k 0x5000 0x440 $(macaddr_add "$mac_base" 1)
+ caldata_sysfsload_from_file "/sys/firmware/mikrotik/hard_config/wlan_data" 0x5000 0x440
;;
*)
caldata_die "board $board is not supported yet"
CONFIG_NR_CPUS=4
CONFIG_NVMEM=y
CONFIG_NVMEM_LAYOUTS=y
-# CONFIG_NVMEM_LAYOUT_MIKROTIK is not set
+CONFIG_NVMEM_LAYOUT_MIKROTIK=y
CONFIG_NVMEM_LAYOUT_U_BOOT_ENV=y
CONFIG_OF=y
CONFIG_OF_ADDRESS=y