realtek: tl-sg2xxx: read MAC address from nvmem-cells
The TP-Link RTL83xx based switches have their MAC address programmed in the "para" partition. While in theory, the format of this partition is dynamic, in practice, the MAC address appears to be located at a consistent address. Thus, use nvmem-cells to read this MAC address. The main MAC is required for deriving the MAC address of the switch ports. Instead of reading it via mtd_get_mac_binary(), alias the ethernet0 node as the label-mac-device, and use get_mac_label(). Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
This commit is contained in:
		 Alexandru Gagniuc
					Alexandru Gagniuc
				
			
				
					committed by
					
						 Sander Vanheule
						Sander Vanheule
					
				
			
			
				
	
			
			
			 Sander Vanheule
						Sander Vanheule
					
				
			
						parent
						
							5f026f1272
						
					
				
				
					commit
					d55c087390
				
			| @@ -41,7 +41,7 @@ hpe,1920-24g) | |||||||
| 	;; | 	;; | ||||||
| tplink,sg2008p-v1|\ | tplink,sg2008p-v1|\ | ||||||
| tplink,sg2452p-v4) | tplink,sg2452p-v4) | ||||||
| 	label_mac=$(mtd_get_mac_binary para 0xfdff4) | 	label_mac=$(get_mac_label) | ||||||
| 	lan_mac="$label_mac" | 	lan_mac="$label_mac" | ||||||
| 	;; | 	;; | ||||||
| *) | *) | ||||||
|   | |||||||
| @@ -11,6 +11,7 @@ | |||||||
| 		led-failsafe = &led_power; | 		led-failsafe = &led_power; | ||||||
| 		led-running = &led_power; | 		led-running = &led_power; | ||||||
| 		led-upgrade = &led_power; | 		led-upgrade = &led_power; | ||||||
|  | 		label-mac-device = ðernet0; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	memory@0 { | 	memory@0 { | ||||||
| @@ -128,15 +129,25 @@ | |||||||
| 				reg = <0x1b00000 0x400000>; | 				reg = <0x1b00000 0x400000>; | ||||||
| 			}; | 			}; | ||||||
| 			partition@1f00000 { | 			partition@1f00000 { | ||||||
|  | 				compatible = "nvmem-cells"; | ||||||
| 				label = "para"; | 				label = "para"; | ||||||
| 				reg = <0x1f00000 0x100000>; | 				reg = <0x1f00000 0x100000>; | ||||||
|  | 				#address-cells = <1>; | ||||||
|  | 				#size-cells = <1>; | ||||||
| 				read-only; | 				read-only; | ||||||
|  |  | ||||||
|  | 				factory_macaddr: macaddr@fdff4 { | ||||||
|  | 					reg = <0xfdff4 0x6>; | ||||||
|  | 				}; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| ðernet0 { | ðernet0 { | ||||||
|  | 	nvmem-cells = <&factory_macaddr>; | ||||||
|  | 	nvmem-cell-names = "mac-address"; | ||||||
|  |  | ||||||
| 	mdio: mdio-bus { | 	mdio: mdio-bus { | ||||||
| 		compatible = "realtek,rtl838x-mdio"; | 		compatible = "realtek,rtl838x-mdio"; | ||||||
| 		#address-cells = <1>; | 		#address-cells = <1>; | ||||||
|   | |||||||
| @@ -20,6 +20,7 @@ | |||||||
| 		led-failsafe = &led_sys; | 		led-failsafe = &led_sys; | ||||||
| 		led-running = &led_sys; | 		led-running = &led_sys; | ||||||
| 		led-upgrade = &led_sys; | 		led-upgrade = &led_sys; | ||||||
|  | 		label-mac-device = ðernet0; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	chosen { | 	chosen { | ||||||
| @@ -261,15 +262,25 @@ | |||||||
| 				reg = <0x1b00000 0x400000>; | 				reg = <0x1b00000 0x400000>; | ||||||
| 			}; | 			}; | ||||||
| 			partition@1f00000 { | 			partition@1f00000 { | ||||||
|  | 				compatible = "nvmem-cells"; | ||||||
| 				label = "para"; | 				label = "para"; | ||||||
| 				reg = <0x1f00000 0x100000>; | 				reg = <0x1f00000 0x100000>; | ||||||
|  | 				#address-cells = <1>; | ||||||
|  | 				#size-cells = <1>; | ||||||
| 				read-only; | 				read-only; | ||||||
|  |  | ||||||
|  | 				factory_macaddr: macaddr@fdff4 { | ||||||
|  | 					reg = <0xfdff4 0x6>; | ||||||
|  | 				}; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| ðernet0 { | ðernet0 { | ||||||
|  | 	nvmem-cells = <&factory_macaddr>; | ||||||
|  | 	nvmem-cell-names = "mac-address"; | ||||||
|  |  | ||||||
| 	mdio: mdio-bus { | 	mdio: mdio-bus { | ||||||
| 		compatible = "realtek,rtl838x-mdio"; | 		compatible = "realtek,rtl838x-mdio"; | ||||||
| 		#address-cells = <1>; | 		#address-cells = <1>; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user