mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 05:50:17 +00:00 
			
		
		
		
	i.mx6:imx6q: allign MAC address with burned-in ordering
For the i.mx6q, the burned-in MAC address will be the following odering, fuse: 0x620[7:0] MAC_ADDR[7:0] ---> mac[5] fuse: 0x620[15:8] MAC_ADDR[15:8] ---> mac[4] fuse: 0x620[23:16] MAC_ADDR[23:16] ---> mac[3] fuse: 0x620[31:24] MAC_ADDR[31:24] ---> mac[2] fuse: 0x630[7:0] MAC_ADDR[39:32] ---> mac[1] fuse: 0x630[15:8] MAC_ADDR[47:40] ---> mac[0] This patch also fix the error caculation for the fuse bank[0] address Signed-off-by: Jason Liu <jason.hui@linaro.org> Cc: Stefano Babic <sbabic@denx.de>
This commit is contained in:
		
							parent
							
								
									29f75a5ce5
								
							
						
					
					
						commit
						bd2e27c043
					
				@ -70,13 +70,15 @@ void imx_get_mac_from_fuse(int dev_id, unsigned char *mac)
 | 
				
			|||||||
	struct fuse_bank4_regs *fuse =
 | 
						struct fuse_bank4_regs *fuse =
 | 
				
			||||||
			(struct fuse_bank4_regs *)bank->fuse_regs;
 | 
								(struct fuse_bank4_regs *)bank->fuse_regs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	u32 mac_lo = readl(&fuse->mac_addr_low);
 | 
						u32 value = readl(&fuse->mac_addr_high);
 | 
				
			||||||
	u32 mac_hi = readl(&fuse->mac_addr_high);
 | 
						mac[0] = (value >> 8);
 | 
				
			||||||
 | 
						mac[1] = value ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	*(u32 *)mac = mac_lo;
 | 
						value = readl(&fuse->mac_addr_low);
 | 
				
			||||||
 | 
						mac[2] = value >> 24 ;
 | 
				
			||||||
	mac[4] = mac_hi & 0xff;
 | 
						mac[3] = value >> 16 ;
 | 
				
			||||||
	mac[5] = (mac_hi >> 8) & 0xff;
 | 
						mac[4] = value >> 8 ;
 | 
				
			||||||
 | 
						mac[5] = value ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
				
			|||||||
@ -214,7 +214,7 @@ struct iim_regs {
 | 
				
			|||||||
	u32     crc_value;
 | 
						u32     crc_value;
 | 
				
			||||||
	u32     rsvd6[3];
 | 
						u32     rsvd6[3];
 | 
				
			||||||
	u32     version;
 | 
						u32     version;
 | 
				
			||||||
	u32     rsvd7[0xd8];
 | 
						u32     rsvd7[0xdb];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	struct fuse_bank {
 | 
						struct fuse_bank {
 | 
				
			||||||
		u32	fuse_regs[0x20];
 | 
							u32	fuse_regs[0x20];
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user