Mtd-mac-address-increment equivalent in the new nvmem implementation cont

@musashino as per a last brief discussion on the topic here Mtd-mac-address-increment equivalent in the new nvmem implementation - #5 by Hostle

i still cannot get it working again

I have made the suggested changes which results in 00:00..01 for the would be incremented macs

root@OpenWrt:~# ifconfig                                                                                                       
br-lan    Link encap:Ethernet  HWaddr 00:00:00:00:00:01                                                                        
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0                                                       
          inet6 addr: fdc4:238:547c::1/60 Scope:Global                                                                         
          inet6 addr: fe80::200:ff:fe00:1/64 Scope:Link                                                                        
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1                                                                   
          RX packets:459 errors:0 dropped:0 overruns:0 frame:0                                                                 
          TX packets:439 errors:0 dropped:2 overruns:0 carrier:0                                                               
          collisions:0 txqueuelen:1000                                                                                         
          RX bytes:41276 (40.3 KiB)  TX bytes:68098 (66.5 KiB)                                                                 
                                                                                                                               
eth0      Link encap:Ethernet  HWaddr 94:83:C4:A4:A7:21                                                                        
          inet6 addr: fe80::9683:c4ff:fea4:a721/64 Scope:Link                                                                  
          UP BROADCAST RUNNING MULTICAST  MTU:1502  Metric:1                                                                   
          RX packets:493 errors:0 dropped:0 overruns:0 frame:0                                                                 
          TX packets:481 errors:0 dropped:0 overruns:0 carrier:0                                                               
          collisions:0 txqueuelen:1000                                                                                         
          RX bytes:53384 (52.1 KiB)  TX bytes:76390 (74.5 KiB)                                                                 
          Interrupt:38                                                                                                         
                                                                                                                               
lan1      Link encap:Ethernet  HWaddr 00:00:00:00:00:01                                                                        
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1                                                                   
          RX packets:459 errors:0 dropped:0 overruns:0 frame:0                                                                 
          TX packets:447 errors:0 dropped:2 overruns:0 carrier:0                                                               
          collisions:0 txqueuelen:1000                                                                                         
          RX bytes:47702 (46.5 KiB)  TX bytes:70700 (69.0 KiB)                                                                 
                                                                                                                               
lan2      Link encap:Ethernet  HWaddr 00:00:00:00:00:01                                                                        
          UP BROADCAST MULTICAST  MTU:1500  Metric:1                                                                           
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0                                                                   
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0                                                                 
          collisions:0 txqueuelen:1000                                                                                         
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)                                                                               
                                                                                                                               
lo        Link encap:Local Loopback                                                                                            
          inet addr:127.0.0.1  Mask:255.0.0.0                                                                                  
          inet6 addr: ::1/128 Scope:Host                                                                                       
          UP LOOPBACK RUNNING  MTU:65536  Metric:1                                                                             
          RX packets:96 errors:0 dropped:0 overruns:0 frame:0                                                                  
          TX packets:96 errors:0 dropped:0 overruns:0 carrier:0                                                                
          collisions:0 txqueuelen:1000                                                                                         
          RX bytes:7488 (7.3 KiB)  TX bytes:7488 (7.3 KiB)                                                                     
                                                                                                                               
wan       Link encap:Ethernet  HWaddr 94:83:C4:A4:A7:21                                                                        
          UP BROADCAST MULTICAST  MTU:1500  Metric:1                                                                           
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0                                                                   
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0                                                                 
          collisions:0 txqueuelen:1000                                                                                         
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)   


official dts

edits made

partitions {
			compatible = "qcom,smem-part";

			partition-0-art {
				label = "0:art";
				read-only;

				nvmem-layout {
					compatible = "fixed-layout";
					#address-cells = <1>;
					#size-cells = <1>;

					macaddr_dp2: macaddr@0 {
						compatible = "mac-base";
						#nvmem-cell-cells = <1>;
						reg = <0x0 0x6>;
					};
				};
			};
		};

the official dts was working when it was merged, but stopped working just afterwards and i haven't been able to get it working since. If you see anything obvious or you need more info please let me know.

turns out it needs the reg property set, to find the mac to increment it :slight_smile: ...

partitions {
			compatible = "qcom,smem-part";

			partition-0-art {
				label = "0:ART";
				reg = <0x00480000 0x100000>;
				read-only;

				nvmem-layout {
					compatible = "fixed-layout";
					#address-cells = <1>;
					#size-cells = <1>;

					macaddr_dp2: macaddr@0 {
						compatible = "mac-base";
						#nvmem-cell-cells = <1>;
						reg = <0x0 0x6>;
					};
				};
			};
		};
root@OpenWrt:~# ifconfig                                                                                                       
br-lan    Link encap:Ethernet  HWaddr 94:83:C4:A4:A7:23                                                                        
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0                                                       
          inet6 addr: fde6:67d:43f0::1/60 Scope:Global                                                                         
          inet6 addr: fe80::9683:c4ff:fea4:a723/64 Scope:Link                                                                  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1                                                                   
          RX packets:236 errors:0 dropped:0 overruns:0 frame:0                                                                 
          TX packets:157 errors:0 dropped:2 overruns:0 carrier:0                                                               
          collisions:0 txqueuelen:1000                                                                                         
          RX bytes:29343 (28.6 KiB)  TX bytes:45668 (44.5 KiB)                                                                 
                                                                                                                               
eth0      Link encap:Ethernet  HWaddr 94:83:C4:A4:A7:21                                                                        
          inet6 addr: fe80::9683:c4ff:fea4:a721/64 Scope:Link                                                                  
          UP BROADCAST RUNNING MULTICAST  MTU:1502  Metric:1                                                                   
          RX packets:268 errors:0 dropped:0 overruns:0 frame:0                                                                 
          TX packets:222 errors:0 dropped:0 overruns:0 carrier:0                                                               
          collisions:0 txqueuelen:1000                                                                                         
          RX bytes:34811 (33.9 KiB)  TX bytes:50079 (48.9 KiB)                                                                 
          Interrupt:38                                                                                                         
                                                                                                                               
lan1      Link encap:Ethernet  HWaddr 94:83:C4:A4:A7:23                                                                        
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1                                                                   
          RX packets:204 errors:0 dropped:0 overruns:0 frame:0                                                                 
          TX packets:158 errors:0 dropped:2 overruns:0 carrier:0                                                               
          collisions:0 txqueuelen:1000                                                                                         
          RX bytes:28739 (28.0 KiB)  TX bytes:44021 (42.9 KiB)                                                                 
                                                                                                                               
lan2      Link encap:Ethernet  HWaddr 94:83:C4:A4:A7:23                                                                        
          UP BROADCAST MULTICAST  MTU:1500  Metric:1                                                                           
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0                                                                   
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0                                                                 
          collisions:0 txqueuelen:1000                                                                                         
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)                                                                               
                                                                                                                               
lo        Link encap:Local Loopback                                                                                            
          inet addr:127.0.0.1  Mask:255.0.0.0                                                                                  
          inet6 addr: ::1/128 Scope:Host                                                                                       
          UP LOOPBACK RUNNING  MTU:65536  Metric:1                                                                             
          RX packets:84 errors:0 dropped:0 overruns:0 frame:0                                                                  
          TX packets:84 errors:0 dropped:0 overruns:0 carrier:0                                                                
          collisions:0 txqueuelen:1000                                                                                         
          RX bytes:7892 (7.7 KiB)  TX bytes:7892 (7.7 KiB)                                                                     
                                                                                                                               
wan       Link encap:Ethernet  HWaddr 94:83:C4:A4:A7:21                                                                        
          UP BROADCAST MULTICAST  MTU:1500  Metric:1                                                                           
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0                                                                   
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0                                                                 
          collisions:0 txqueuelen:1000                                                                                         
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)  

hopefully this saves someone a great deal of head scratching

EDIT

The above was not the solution, i saved config settings while flashing which preserved the proper macs.

In my case the solution was to set the proper offset. I had been using the offset from the original dts <0x0 0x6>.

but after looking at the hexdump the problem was obvious, I am still puzzled how it worked at all with the wrong offset ?

root@OpenWrt:~# cat /proc/mtd                                                                                                                       
dev:    size   erasesize  name                                                                                                                      
mtd0: 00080000 00020000 "0:sbl1"                                                                                                                    
mtd1: 00080000 00020000 "0:mibib"                                                                                                                   
mtd2: 00040000 00020000 "0:bootconfig"                                                                                                              
mtd3: 00100000 00020000 "0:qsee"                                                                                                                    
mtd4: 00040000 00020000 "0:devcfg"                                                                                                                  
mtd5: 00040000 00020000 "0:cdt"                                                                                                                     
mtd6: 00080000 00020000 "0:appsblenv"                                                                                                               
mtd7: 00140000 00020000 "0:appsbl"                                                                                                                  
mtd8: 00100000 00020000 "0:art"                                                                                                                     
mtd9: 00080000 00020000 "0:training"                                                                                                                
mtd10: 00200000 00020000 "cfg"                                                                                                                      
mtd11: 07800000 00020000 "rootfs"

root@OpenWrt:~# hexdump /sys/bus/nvmem/devices/mtd8/nvmem                                                                                        
0000000 ffff ffff ffff 8394 a4c4 21a7 ffff ffff                                                                                                     
0000010 686f 6134 3237 ff31 ffff ffff ffff ffff  

the proper offset is <0x6 0x6>

so the correct dts entry is

partitions {
			compatible = "qcom,smem-part";

			partition-0-art {
				label = "0:art";
				read-only;

				nvmem-layout {
					compatible = "fixed-layout";
					#address-cells = <1>;
					#size-cells = <1>;

					macaddr_dp2: macaddr@0 {
						compatible = "mac-base";
						reg = <0x6 0x6>;
						#nvmem-cell-cells = <1>;
					};
				};
			};
		};

and after testing properly

root@OpenWrt:~# ifconfig                                                                                                       
br-lan    Link encap:Ethernet  HWaddr 94:83:C4:A4:A7:23                                                                        
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0                                                       
          inet6 addr: fde6:67d:43f0::1/60 Scope:Global                                                                         
          inet6 addr: fe80::9683:c4ff:fea4:a723/64 Scope:Link                                                                  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1                                                                   
          RX packets:236 errors:0 dropped:0 overruns:0 frame:0                                                                 
          TX packets:157 errors:0 dropped:2 overruns:0 carrier:0                                                               
          collisions:0 txqueuelen:1000                                                                                         
          RX bytes:29343 (28.6 KiB)  TX bytes:45668 (44.5 KiB)                                                                 
                                                                                                                               
eth0      Link encap:Ethernet  HWaddr 94:83:C4:A4:A7:21                                                                        
          inet6 addr: fe80::9683:c4ff:fea4:a721/64 Scope:Link                                                                  
          UP BROADCAST RUNNING MULTICAST  MTU:1502  Metric:1                                                                   
          RX packets:268 errors:0 dropped:0 overruns:0 frame:0                                                                 
          TX packets:222 errors:0 dropped:0 overruns:0 carrier:0                                                               
          collisions:0 txqueuelen:1000                                                                                         
          RX bytes:34811 (33.9 KiB)  TX bytes:50079 (48.9 KiB)                                                                 
          Interrupt:38                                                                                                         
                                                                                                                               
lan1      Link encap:Ethernet  HWaddr 94:83:C4:A4:A7:23                                                                        
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1                                                                   
          RX packets:204 errors:0 dropped:0 overruns:0 frame:0                                                                 
          TX packets:158 errors:0 dropped:2 overruns:0 carrier:0                                                               
          collisions:0 txqueuelen:1000                                                                                         
          RX bytes:28739 (28.0 KiB)  TX bytes:44021 (42.9 KiB)                                                                 
                                                                                                                               
lan2      Link encap:Ethernet  HWaddr 94:83:C4:A4:A7:23                                                                        
          UP BROADCAST MULTICAST  MTU:1500  Metric:1                                                                           
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0                                                                   
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0                                                                 
          collisions:0 txqueuelen:1000                                                                                         
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)                                                                               
                                                                                                                               
lo        Link encap:Local Loopback                                                                                            
          inet addr:127.0.0.1  Mask:255.0.0.0                                                                                  
          inet6 addr: ::1/128 Scope:Host                                                                                       
          UP LOOPBACK RUNNING  MTU:65536  Metric:1                                                                             
          RX packets:84 errors:0 dropped:0 overruns:0 frame:0                                                                  
          TX packets:84 errors:0 dropped:0 overruns:0 carrier:0                                                                
          collisions:0 txqueuelen:1000                                                                                         
          RX bytes:7892 (7.7 KiB)  TX bytes:7892 (7.7 KiB)                                                                     
                                                                                                                               
wan       Link encap:Ethernet  HWaddr 94:83:C4:A4:A7:21                                                                        
          UP BROADCAST MULTICAST  MTU:1500  Metric:1                                                                           
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0                                                                   
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0                                                                 
          collisions:0 txqueuelen:1000                                                                                         
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)  

works like a dam :smiling_face_with_sunglasses:

2 Likes

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.