From patchwork Mon Feb 1 02:41:31 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ye Li X-Patchwork-Id: 576315 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 9168E140CC1 for ; Mon, 1 Feb 2016 13:42:08 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=gnasFDtc; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id A3E30B37D7; Mon, 1 Feb 2016 03:42:05 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lLwccFdE-WK6; Mon, 1 Feb 2016 03:42:05 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id BA481A7519; Mon, 1 Feb 2016 03:42:04 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 719C0A7519 for ; Mon, 1 Feb 2016 03:42:02 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3XPtq2CyWZyC for ; Mon, 1 Feb 2016 03:42:02 +0100 (CET) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from emea01-am1-obe.outbound.protection.outlook.com (mail-am1on0084.outbound.protection.outlook.com [157.56.112.84]) by theia.denx.de (Postfix) with ESMTPS id 2342DA745C for ; Mon, 1 Feb 2016 03:41:58 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-nxp-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=f0e8ALqPdPmt8onygPiE4iFQeyOxV9n+2nwg4yPbRPI=; b=gnasFDtcJ8j3B4vsKm9T0Fmkv0yQmeJU0DUsfyS1JL8OFtk2pG+mn3tu8/cEQlJ1eH7AuDCq6NS4zffNGtuFiLSVCSeb5ipSSjHo2DS8fyVfye1mhm02/6v8Sw3HWf9HSEcLlKj4IQRzu2LT6yFQ3hEFM+j8jNvzSwllqpFbaxs= Authentication-Results: denx.de; dkim=none (message not signed) header.d=none;denx.de; dmarc=none action=none header.from=nxp.com; Received: from localhost.localdomain (115.206.10.153) by DB5PR0401MB1782.eurprd04.prod.outlook.com (10.165.5.148) with Microsoft SMTP Server (TLS) id 15.1.396.15; Mon, 1 Feb 2016 02:41:43 +0000 From: Ye Li To: , Date: Mon, 1 Feb 2016 10:41:31 +0800 Message-ID: <1454294492-5369-1-git-send-email-ye.li@nxp.com> X-Mailer: git-send-email 1.7.4.1 MIME-Version: 1.0 X-Originating-IP: [115.206.10.153] X-ClientProxiedBy: SIXPR0301CA0034.apcprd03.prod.outlook.com (25.162.171.172) To DB5PR0401MB1782.eurprd04.prod.outlook.com (25.165.5.148) X-Microsoft-Exchange-Diagnostics: 1; DB5PR0401MB1782; 2:l7N8woRPc7np7NUl9aI4nMA9PFVuvTMHkvDovmLkUf6kcX8XBqnm8Mn9axLkiZYLyJK2Md7JvcX76ivDl+sNWFd2hrgIAhJWyN/iFnyvAVFBu+i0wgHV3YUfyXs7oijyVVD5SP2VnlkqxtMDKhM0gw==; 3:qnnFHfc6jGiIJ+joCL5OHaggoynvVod7iwi4F6qxzo2Zj+Rn8zJG2dLprYInoZb7CP7TWGnI3on67Rk637eFU1eN8/Qr216biYB/FkI+qhZqQY+i0ClN0idw3oDtVRPC; 25:ggyA/vYOqGjMDs87uP9D0XPbVYNnz+HHpTFlyMesJWG/tyEZ5/ctdxd1LDV+2jYGc/mEmnNFXgX2YHrrSPDWUOIbW91QGQ9MIFIb5l4JiJNB8w4k01qQ21pJnBOpoArTFXNGN52bMbaL5qlG+NBadPKo7s7OHviaAADcC8rb/vO5zsW19CTurq19aSs3tjzV1Dh2mkZ7YY8NNKmUKcEYpHT9wixuQ5MrQ6sFsEDlX0kYhAS9NV0dPB1LbQb3797R X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB5PR0401MB1782; X-MS-Office365-Filtering-Correlation-Id: 99f7bcdd-3b1c-42d6-4e69-08d32ab140ad X-Microsoft-Exchange-Diagnostics: 1; DB5PR0401MB1782; 20:TatSVDAKBwclkjixpncckiI2eqvEAWo2QLROJQZ4QwkJxL5L2XjrFaRTAzH/Qko8JKWpY+QR98BnhaE4hpcZ7V7yANKwns0SrZaOKW262BAIxSo3zQE+goSQnMpMSIIdnZtUZERcfetefY/tDOTvcV0bTqSr47EpvHd5ZHvG/5OWNcEbMzuTfXV4o09PLU8JTimgNi4AoNDUPgLXzfWAPZA4cetGIKIpK8edmE4a9bpQOJ58v7TUPJpSJFqpKr/BWNrZVlKbXYtQy+aGjrlpJh3+Kv2AbjK36fGuDkTqq0JTNKQtm93P+cCdw4vbuepsz9svFAPKqJw7WS65ciYqfF0qneKXcqAgZj1hPW6lNsAj6P/9epjphFGmdRuOSTveA0x+VdcL/5QB+bjlOO2Xil92lp+GJyEquQMpgwS938UAnkIDT7kdHrWjfdCN/dAz9mslXHUP7pCU6GNM+jwZQGXKlllYXyxOlEQDG5mcVkpm7kcPmpytKzuXhU/6FYAT; 4:vyXyUJPEb5v4nozJSnf+9NsrWZesyRxNZyCmzDEPpYU8kARFQ55OsymY+5H7FhjCOLh2efAqe2on6nG7iUDfJCbMmYjrrIQA8youDbOU2x6EGAn4EQAQvvbV2N2inZ1N/2k4g0mOMPaXqilpKXlvEqrb3x91LpwYsq+XGLP1YUFJjiIuJyt1t3Ys2NKkdl64lN+dK149hgmSRvTweGmLH1gGEqU3GVyMe+NvPcvWwwUrqI4Ro8KNkSKSiO68VJSDeGN1O5rILU0EED2H7vzJN6AJVsEzLmWornZPtBrN/OOTBX66GuHdAOZw3lyWGELSiXhjbABMsmILFSIlAL0AiNKlcm5ACm9MPjrkvZ/1Nt0ND5h3L3XZ9oHrDhTmfLjlAi6bAAkecZikeYznyMW8p2CrlYqjYyfyeNLk8WBRsfo= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046); SRVR:DB5PR0401MB1782; BCL:0; PCL:0; RULEID:; SRVR:DB5PR0401MB1782; X-Forefront-PRVS: 0839D067E7 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(979002)(6009001)(6069001)(106356001)(92566002)(229853001)(48376002)(87976001)(19580395003)(19580405001)(42186005)(33646002)(50226001)(40100003)(122386002)(86362001)(4326007)(50466002)(5003940100001)(77096005)(2906002)(5004730100002)(586003)(50986999)(1096002)(3846002)(6116002)(47776003)(36756003)(3470700001)(66066001)(5008740100001)(5001770100001)(189998001)(5001960100002)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:DB5PR0401MB1782; H:localhost.localdomain; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB5PR0401MB1782; 23:zNFuI3xR2GR8nBbGCJTL0XT2UB2O0iQDBChfn4Z?= =?us-ascii?Q?+DNVl892lf/GTJCR6pHFLIdEpqA3Cxs/oA5RzjDRyArqU4FPh5YJrKLcXpRD?= =?us-ascii?Q?FRcxIUodZxTsoOUjxmvrsDZ/IKITS/f8EoCCW85cfGMRl/0SHeFMzTEabCIF?= =?us-ascii?Q?M/PZeZ9+Bab2KBMQo54O+O0VNZQwxOgKZCU+UBuuzxLywxhZ7Fbzrah9qHEV?= =?us-ascii?Q?JTO3GiaqE7ZKTjDEgf6VSjZGUqRHWQQMdaAgvRcpDPnHqz3z8GVu8xjJd+Fz?= =?us-ascii?Q?RD/piKCEZV0GxP4eKusoVgaN2slenzAG1/3zmTgBOw7A/zYHLDUQdGlNUvSL?= =?us-ascii?Q?iBBGXn50hNSgAuqsJENWGROLmVyvl5/xyfv2Y66BJqj0dW/tFkqIk2iWq7sc?= =?us-ascii?Q?6UtA9IATec7GQU+ohKpgSXg9LsYLASd6/0uGgibOxyVs8dEJ09luz0ocz/MY?= =?us-ascii?Q?5bIkQ9y3UBbiWc74XSAE+r2likEUEn+bQQc7BOri5IcBDD3CkbrUdmzGS4PR?= =?us-ascii?Q?52y6Pev3Q/I9W9mEURCQKomHSWBsRpw9cJsMY6klGNCJhHOifmk2EyfnD3fG?= =?us-ascii?Q?a4f3DuySflxopxl3euCsP9H5GkqrW8bbaA2APi4veVugkAqYOU79BlWsF+Bt?= =?us-ascii?Q?tJyrJF6sNBJKgpmco2tMby6ZbxS9nZdyeOzfhgKopMgbf2C/Mp0Jp0flR1yE?= =?us-ascii?Q?0ZdFDkaRhRPgS26Rsq+QHloDDJMs8eBq0rN7KLUANauX3CFo8bEjPFhb7kYf?= =?us-ascii?Q?pGZjLVT2u6t6Rs5L1f09MJmmgnvlqnQK4c0Q3mFNPJU1ehvXLCnsXxZWj4Im?= =?us-ascii?Q?Glv/fZVUTfptxgCi3pAq1UZqt9ShWLgOZhmInxyc9evwHqm3on+0hY/TNrBq?= =?us-ascii?Q?FagzOVvsu4AzFXIqzjZUkQhAjwRMRrda3sobYOfnrZQt3WNkJGrd38HnAmuc?= =?us-ascii?Q?a7QPXNEO6/prHIu0xhgb0xTHfIfuQkUoKwzICIb5+zsvsrTj7OFUXzImlTuG?= =?us-ascii?Q?cuH3d3L3vO8JaGHbZyk8osbEz64Tqcgu3XMD98JFZp0hrRy0ROQCl4tpertq?= =?us-ascii?Q?feMTPc3g=3D?= X-Microsoft-Exchange-Diagnostics: 1; DB5PR0401MB1782; 5:DCViAYO2ahgcMcI4u41vP0+bR9cLDgmpYfCcU+yQ776xgHvwmLyK+1nL/dRW22YFcZbYk7arl5E2mqNlCGcll1qpgHnt2VPdlJvw6nTzewCLGupWcF6vxGUepiC1fA1t8j4ZJb0NPthlLY4Gk9Ec9w==; 24:5dcTmg13k8XKv5vVLDh3rtar/fN4N7UtArUDF4nNwRnBV8oC5kBOsJ7S/l/VZBy8toKdSpAVi2oOVIMLcq/5TmkRZw9BCusW2Vd0Kebf4FA= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Feb 2016 02:41:43.6416 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR0401MB1782 Cc: u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 1/2] mx6: soc: Add ENET2 mac address support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" The i.MX6SX and i.MX6UL has two ENET controllers, add support for reading MAC address from fuse for ENET2. Signed-off-by: Ye Li --- Changes for v3: - Modify dev_id check expression according to Fabio's comment. Changes for v2: - Add second MAC address to README.imx6. - Rename mac_addr_low and mac_addr_high fields to mac_addr0 and mac_addr1 to align with the reigster names in RM. arch/arm/cpu/armv7/mx6/soc.c | 32 +++++++++++++++++++++-------- arch/arm/include/asm/arch-mx6/imx-regs.h | 23 ++------------------ doc/README.imx6 | 5 +++- 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/arch/arm/cpu/armv7/mx6/soc.c b/arch/arm/cpu/armv7/mx6/soc.c index bf5ae8c..ebe42b8 100644 --- a/arch/arm/cpu/armv7/mx6/soc.c +++ b/arch/arm/cpu/armv7/mx6/soc.c @@ -364,15 +364,29 @@ void imx_get_mac_from_fuse(int dev_id, unsigned char *mac) struct fuse_bank4_regs *fuse = (struct fuse_bank4_regs *)bank->fuse_regs; - u32 value = readl(&fuse->mac_addr_high); - mac[0] = (value >> 8); - mac[1] = value ; - - value = readl(&fuse->mac_addr_low); - mac[2] = value >> 24 ; - mac[3] = value >> 16 ; - mac[4] = value >> 8 ; - mac[5] = value ; + if ((is_cpu_type(MXC_CPU_MX6SX) || is_cpu_type(MXC_CPU_MX6UL)) && + dev_id == 1) { + u32 value = readl(&fuse->mac_addr2); + mac[0] = value >> 24 ; + mac[1] = value >> 16 ; + mac[2] = value >> 8 ; + mac[3] = value ; + + value = readl(&fuse->mac_addr1); + mac[4] = value >> 24 ; + mac[5] = value >> 16 ; + + } else { + u32 value = readl(&fuse->mac_addr1); + mac[0] = (value >> 8); + mac[1] = value ; + + value = readl(&fuse->mac_addr0); + mac[2] = value >> 24 ; + mac[3] = value >> 16 ; + mac[4] = value >> 8 ; + mac[5] = value ; + } } #endif diff --git a/arch/arm/include/asm/arch-mx6/imx-regs.h b/arch/arm/include/asm/arch-mx6/imx-regs.h index f24525e..5c45bf6 100644 --- a/arch/arm/include/asm/arch-mx6/imx-regs.h +++ b/arch/arm/include/asm/arch-mx6/imx-regs.h @@ -715,39 +715,22 @@ struct fuse_bank1_regs { u32 rsvd7[3]; }; -#if (defined(CONFIG_MX6SX) || defined(CONFIG_MX6UL)) struct fuse_bank4_regs { u32 sjc_resp_low; u32 rsvd0[3]; u32 sjc_resp_high; u32 rsvd1[3]; - u32 mac_addr_low; + u32 mac_addr0; u32 rsvd2[3]; - u32 mac_addr_high; + u32 mac_addr1; u32 rsvd3[3]; - u32 mac_addr2; + u32 mac_addr2; /*For i.MX6SX and i.MX6UL*/ u32 rsvd4[7]; u32 gp1; u32 rsvd5[3]; u32 gp2; u32 rsvd6[3]; }; -#else -struct fuse_bank4_regs { - u32 sjc_resp_low; - u32 rsvd0[3]; - u32 sjc_resp_high; - u32 rsvd1[3]; - u32 mac_addr_low; - u32 rsvd2[3]; - u32 mac_addr_high; - u32 rsvd3[0xb]; - u32 gp1; - u32 rsvd4[3]; - u32 gp2; - u32 rsvd5[3]; -}; -#endif struct aipstz_regs { u32 mprot0; diff --git a/doc/README.imx6 b/doc/README.imx6 index e26ab71..7c9a4ac 100644 --- a/doc/README.imx6 +++ b/doc/README.imx6 @@ -7,7 +7,10 @@ SoC. ----------------------------------- 1.1 MAC Address: It is stored in fuse bank 4, with the 32 lsbs in word 2 and the - 16 msbs in word 3. + 16 msbs in word 3[15:0]. + For i.MX6SX and i.MX6UL, they have two MAC addresses. The second MAC address + is stored in fuse bank 4, with the 16 lsb in word 3[31:16] and the 32 msbs in + word 4. Example: