From patchwork Thu Nov 3 12:20:51 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Priyanka Jain X-Patchwork-Id: 690815 X-Patchwork-Delegate: yorksun@freescale.com 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 3t8l8T5Blrz9t0J for ; Thu, 3 Nov 2016 23:46:33 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id A1564B3843; Thu, 3 Nov 2016 13:46:31 +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 1upCeDevjoVF; Thu, 3 Nov 2016 13:46:31 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 2960EB3836; Thu, 3 Nov 2016 13:46:31 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 0BC38B3838 for ; Thu, 3 Nov 2016 13:46:25 +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 CEYXY8imDu7G for ; Thu, 3 Nov 2016 13:46:24 +0100 (CET) X-Greylist: delayed 941 seconds by postgrey-1.34 at theia; Thu, 03 Nov 2016 13:46:20 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 NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0088.outbound.protection.outlook.com [104.47.32.88]) by theia.denx.de (Postfix) with ESMTPS id 5643CB3835 for ; Thu, 3 Nov 2016 13:46:20 +0100 (CET) Received: from BN3PR0301CA0055.namprd03.prod.outlook.com (10.160.152.151) by CO2PR03MB2375.namprd03.prod.outlook.com (10.166.93.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.693.12; Thu, 3 Nov 2016 12:30:36 +0000 Received: from BN1BFFO11FD056.protection.gbl (2a01:111:f400:7c10::1:135) by BN3PR0301CA0055.outlook.office365.com (2a01:111:e400:401e::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.693.12 via Frontend Transport; Thu, 3 Nov 2016 12:30:36 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none; nxp.com; dmarc=fail action=none header.from=nxp.com; nxp.com; dkim=none (message not signed) header.d=none; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1BFFO11FD056.mail.protection.outlook.com (10.58.145.11) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.693.6 via Frontend Transport; Thu, 3 Nov 2016 12:30:36 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:; UpperCasedChecksum:; SizeAsReceived:632; Count:8 Received: from b32167-VirtualBox.am.freescale.net ([10.214.249.199]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id uA3CUUvU026367; Thu, 3 Nov 2016 05:30:31 -0700 From: Priyanka Jain To: , Date: Thu, 3 Nov 2016 17:50:51 +0530 Message-ID: <1478175651-16297-1-git-send-email-priyanka.jain@nxp.com> X-Mailer: git-send-email 1.7.4.1 X-IncomingHeaderCount: 8 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131226498368421394; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(77096005)(92566002)(104016004)(48376002)(50466002)(586003)(4720700003)(68736007)(50226002)(85426001)(8936002)(6636002)(6666003)(87936001)(47776003)(626004)(36756003)(4326007)(2906002)(5660300001)(105606002)(11100500001)(8676002)(19580405001)(19580395003)(81166006)(81156014)(33646002)(229853001)(106466001)(189998001)(97736004)(5001770100001)(5003940100001)(86362001)(305945005)(8666005)(7846002)(356003)(50986999)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:CO2PR03MB2375; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD056; 1:hJ5ZmNaUF6xqa1oq2MqHrsU1Gy3fgUQzOnkE6yqljpiZIzmgAj2mByEKT5tb0Lw068OboNoTdXAlDrl64CsB0fxLwLtnWNap6r3MtAo5rZI6Z1OVexpRFHFOMoCdzOIrm42dcVoqugWf8tWDIlhHVzvtINskri1Bv5y8gFwhyfY78nQGw5co265Ih2g7FFsEIm6aFt+WouEBsl/wp2Fo1gCoOE0tH9zaquzD2vD7ph2HtjYdnhFRfb179hSplfyG/AHgTdkv92DBMIih1UvN3XklJ5IiVWnr2ErBXx65yfFHTriVQ/x2sIdsRJtQLHij8/mopelpOnpIMg11wPW8RGZWDuPoULFp7/PlxleJ4keQYsAAE4QiWkFdY5bZP92JJ4i1CMTvtBGAqdA83D/7uDTbQp0LPT5DRcQD0G3JH6vEkJCbjFpSLHyaeTKWIDrbj66ILKlHtbxnvQniunksz33ToVUB33u6Dkr93zU7KfMM12li0XzqtKUnO2dAN0Z3sJ22zM8M7PaymAP20DM3tLDV6cTySWXS+oIfuOpCplLMNKCh8Y+g01Avebfa3qSgWfgHXbOBD2pZ6PFwLy9/hpdvMLegmI59h/8LsM3opURUF2NbRo8+E5d1N/DFwDVq2dwE1JkRvDN9buqzxrTMCoto67AaqS1UAHPOCmLEym0l7LgFK6ahp+nyzm36RLmS/Zi6F2lk1r6vZUqG4StG/e+8kp8UUJIIvyfdF4q/ehE= MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: c7199a72-8f86-4883-dcb5-08d403e536d2 X-Microsoft-Exchange-Diagnostics: 1; CO2PR03MB2375; 2:jqc0MvxnvF848MBmP+nqisOMR0diAzWRIatNDQX15ikN/8eR1HT8U8orTXpk21uUXOcSrZFs+BqbfiWuhrkOWxJ0qjKYtP5Hi95RDxi82ReyCVdepx0BzIW0nLVho++bc7GRV37xLbZ+TkTGWDjvTHR/wL8j1kWfPe+6JenWWcI6hqRc/fmtmQn8GU10bmaXDXJ+vU/Q6SrSndsu8k89qA==; 3:BQuMonYNqhqy3DY5eeqXv+ygG+lXa3ZIQOM+H0yco3aaRd9MNzm5fnwHyeHyLr9EcuQYxDtGGoNTw/yPRB0Y2Ja1BVe75WPe25p8MEngLrcA2VsSjdTOM6qM8l9GmoWHiJUIcDXbQhhko+uZWEXoYa72c5cqVvkkyHIXTttr4Om+STR73igF+yogik9+nAEA6Ax2XWdBaX7+x6M6ukHl3ZHuC4x3YDFYrXWkDramW2fJIebFxTNcNRVmZwU6NkWP X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR03MB2375; X-Microsoft-Exchange-Diagnostics: 1; CO2PR03MB2375; 25:YGKcMmBJgewSpjeAkT+CUClpxK7PFL/znw90w7FvfHZG7TmRSOrPQsBLmlAHrCPXjtpmIEeilcw4aOYVcOQRPaDwS3GRnBSfwvilaASPOjHMhqb6Gl48CvvEa/n+KIGwl7YlHuCC2kTVacjDHh8J/GfJYdvm/Hq6vbFPDwUn8vXjd6suAC5w+dMy93mkXY6h8k/3A/vD16Vf6PPPzCha6gbRNpkI7xbCU6o2g3FCliTwv52t5c9wTkHnRzQpd9gPEp0LXblDczmRCAGZkAiUYQ8t7h7yufv79HJ8k9hkYkjin0Q8aO6iM1pWFwOFLrrhqBozyZL9qyBLe/vTTDii4iT3y6l00Oj/g2Jve9kg8Hk1vMIQlHpnyNWQKYyCPPllKdB/T3hAaZMu0C8T1jyb+yrwfAFlMwCZO7E50+2Q7VAjrJnB9abqLU+AZtbf01pk1Fvnnsl/MaK2MH1cV09QyQ==; 31:8MNDXNB4w08yTsLmQSzajkeoDSRnligBqEjbFy76rlA/uuKz4Pqo0dR2Jtc1JL16Z1eCqtBCbJ5tfrq9g3Qvd3iK/B56i/TarV0buzpxJu+rWmZLFaidYLu1etn9YnnKRZjHY39IdI0Hmvir8eWvbrljrSTLJmUdvcW91MV1Pj+lOpveLX2Tv1J6OckvlQ1zG/rbbOkEPtZyBSLaDeeFZ2SY7S5OLqdpU7XBcVqFF49tZJvHkNAlBpc1GP5Klq/uuH27xBSnJnbwToACwqdl0Q== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(13017025)(13015025)(13018025)(13024025)(13023025)(5005006)(8121501046)(3002001)(10201501046)(6055026); SRVR:CO2PR03MB2375; BCL:0; PCL:0; RULEID:(400006); SRVR:CO2PR03MB2375; X-Microsoft-Exchange-Diagnostics: 1; CO2PR03MB2375; 4:UtAUOYxXtZlI4kTwwqVZ9b9ncJll1dmzzD1oC8frtOHBIm68X6BRSHp8dKRE8NpIEa29+Bt020xa1RDhdTstHC6wNHZRIotcRLiBuKY8H+UEnivZMgqoNQZwjwM8XmXd4K1GLEIhZoAs97hiUS4bfnkBhziOIriJceR67Vx9CgEbRpKcktpeoMCsrtiHTsFec3i53t1EiEWzklati6QA73Wfs2DzOgPbuMVd4kp6ovqZZzTndYkt42ygYVu6MU7qINySY7Hr1xgZu7wXSQrbOtfzaZCbvRjhQDozf9AuOdAfqMbb7f09tTN82adjZCrDew848Jno7NIhziuRRYC+mXJB13bQZ8KPPjf+9GJuZYAmbrO4Lf2qlULVBvb6YMk4DdM/s+VgJGk9MKkpYFU4sqvFmjRhG+dHqKm6MquBb2Pj/L1j/6ZITbIh78xcZfjEtq/NmVfo3bOSmhENQCng9HYxYRK7gMSzbv8YnRW8n3xuBklKcONucdGxFyWVH76cTlcHwW4zSKKpihr2jc/bcsP9Andr81Ya1QQSyuti8j8S7/0ahKYcF1Q0c/xO0Xtj X-Forefront-PRVS: 011579F31F X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CO2PR03MB2375; 23:O0S7IJewrJdP249TYihR7r5T2SwR4fGGJpEpKraWP?= =?us-ascii?Q?71lU0V/GU1jTvCfW5cUQIst8LL4LuJC3vBz98LNZKFGvA6edB5vRrGoWsu4e?= =?us-ascii?Q?KDxIB3nlIPtRNsZdVOd/KSrjmykuptbhzQLnBSGIPvtyo6Ozwap2CakD8tH4?= =?us-ascii?Q?45VRzLaXlwRfI0A3ua5YIkoDA9FsrL9ICVtJ75jDbL0+grNsP4PGkRmyPZSa?= =?us-ascii?Q?sJQhmGVlG1tZ5cAF9HX635V7pXXMYrDmPV6Jmsp0lJqMh3PQrayGgysilHBK?= =?us-ascii?Q?7GGl+9ARnOpHKxknTIYjPuJ2UiHCu9rN9ZHJyUZv47Ho9rxpjyNGaqOSxhyO?= =?us-ascii?Q?pXj7IjpqHpGgEnJqlT5JqecLWFks2HhYUiIP6L7Q6nn73n+JNnT7yfrLoJVO?= =?us-ascii?Q?98LbgZxARYMUZ11m9Oi2BB+B56cXrAvOTGNa8ZmYoVUn4CkS5YMJEJgYPAbJ?= =?us-ascii?Q?b4exoExTt9dYcMYKXhi8R/S2NvgF9ivGV1X5qu5fZcjaoGt8V50UfskJZ/ab?= =?us-ascii?Q?tKptBJHcUjZ0hFILtJWfH8SpGBCc+XYlqg84CnBpAydF/VVVWUknDmVzySPq?= =?us-ascii?Q?nUZrShQQzjTP1y1lGRZdghoftkwoNAwyxwJpQY+OAzBOfwVLBtSlaGpWcAQg?= =?us-ascii?Q?zm6xyUI6GwjOz397nAoqmZ9zAZKbSb9KxeH4kCaByhA2oInswO5YwQJmT8lJ?= =?us-ascii?Q?pdm/ZfQuQieU+2R+cqvGNMZG4ZgHgcDeCAGe7qzIaSRtkIlDutl9O6KhzZCd?= =?us-ascii?Q?qSxXzqkvFxcLON+z+J4jl4hwRtX3lATBF0zTHUu3Nd/EyF6oXz85qPV5NV6N?= =?us-ascii?Q?W5Z28SvZmyW7+ZaB7w+pnWQ8x2SstYlNWatqp8/XVehDfGtobjq7tYAPh9RV?= =?us-ascii?Q?UKUO7jP9bcN0j4ufNBh9YxurxVQDrnwIAiVW7OEImoSNVSJqSHl1jTTZZCrk?= =?us-ascii?Q?IQnuUO56PoLF6o8vuBvO66bgMkQjWrjzol7oR9SDpBBVWuEtlpER8YFj9dw7?= =?us-ascii?Q?hs6a1IzsMUeiSlxO61EUWZPqncfuVDlX6CLrXGj8hSs5MTrzbBhRAzU9P1Oq?= =?us-ascii?Q?1O05aIs4f3VnW+lJZrGA5xFnVjyPa1Gj299/gsXD3DvuusHuMF/rQyQGsncT?= =?us-ascii?Q?V1rQRq2n4K4pjjdNKmXQF7YQ9VJPV7seA4lccDKFPUnfjiIiHTeG02ujOpOM?= =?us-ascii?Q?jvnVA2BbQHNLAs=3D?= X-Microsoft-Exchange-Diagnostics: 1; CO2PR03MB2375; 6:hKNzZ7IMmFWrVT/vBM4Zq5BIle8uYFl1DRPznoGsa/5zmTPae8Dc3rMtKWdmu5pfPmguH+YafOOSroBw9fHispfuJ85ZrX7xg0Zkj8PIO+Vb/C8PUVGCwT6KS25spYDMf5xvwn93Q20OxRsyNWaaVO3F3O2G12W3zKsnKVhFnuY9o1roXzVFjAF8joCTNynAPMsRJMaubAN8RekBR0Ibb8fM8NPmjm1sBiCMZfzPvV3Kg41+MQX91inYlAY3E1pwIa1tM1qr930+KtyZkLdTtc1icueU+hWlbXNJRYUA5+ZBQ4W0QnNuuLo/AhDZSbOP; 5:OQFSEoah4YiMIKcrN7ZxrOHIqoGs3roXQnYRo+wUhqz/6yQ49RgLI0OMZF4rXg9qdPo8pON3bjtVGeogeWKHkf6ECSGTUVJKpDjK2f4ailyMbiSePu6KCd3gF5sVETYVP3y8U+asEaasolBwWphcsFDGj2zojHHQVgZbkLACpkuKyU4Efi2mAt/3n0W7MRdu; 24:EcVpbQm9LGKottAc3mW/D2CgaNUU/5ziF3t/mdvG4roP8IIoaMMsiJPcQPP6bDxVRLQPEA/9+hlbXRdc1u8YEn2Q/BHkttAaIUKmcoLdPWI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CO2PR03MB2375; 7:n6KPERntW5Nhe3E54ctRc7NhHDVuP5KubukXYZ64n7Hg1/hWAerL9E7TqMpOBP3SD+kuFdz4CtAu1usK88V0NFR9YeAua11valjhAhb+CzweTBQkjiQ5Be+TzuabVY/CvAMwu92HNoiVvPd30gDDh9imPJcmGyBQhmC3Fn4t8DWxZNVxk/N16yHV1D+z8y382H0Dj/B/khyJDUHnziX+a2GKrVxqzOsTTqFUkiMxDeC01QiCylBBGCx+dtS2pyDg7BdhAKUnHvvOAx0vTlH1gkoO0T6Nd9+gCQ+p+Rdk5lDKp0u7WSRShhVwnK719MyCEmAEgef6Y4cBD3fg13L/zUc6Jxh73NUmvkGKinDob2o= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2016 12:30:36.6393 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR03MB2375 Cc: Priyanka Jain Subject: [U-Boot] [PATCH][v2] armv8: ls2080a: Update serdes protocol 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" Add serdes protocol support for Serdes1 protocol: 0x39, 0x4B, 0x4C, 0x4D Serdes2 protocol: 0x47, 0x57 Signed-off-by: Priyanka Jain Signed-off-by: Prabhakar Kushwaha Signed-off-by: Ashish Kumar --- Changes for v2: Added signed-off-by arch/arm/cpu/armv8/fsl-layerscape/ls2080a_serdes.c | 6 + board/freescale/ls2080aqds/eth.c | 122 +++++++++++++++++++- 2 files changed, 125 insertions(+), 3 deletions(-) diff --git a/arch/arm/cpu/armv8/fsl-layerscape/ls2080a_serdes.c b/arch/arm/cpu/armv8/fsl-layerscape/ls2080a_serdes.c index eaa44a7..67d605e 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/ls2080a_serdes.c +++ b/arch/arm/cpu/armv8/fsl-layerscape/ls2080a_serdes.c @@ -34,6 +34,11 @@ static struct serdes_config serdes1_cfg_tbl[] = { {0x33, {PCIE2, PCIE2, PCIE2, PCIE2, QSGMII_D, QSGMII_C, QSGMII_B, QSGMII_A} }, {0x35, {QSGMII_D, QSGMII_C, QSGMII_B, PCIE2, XFI4, XFI3, XFI2, XFI1 } }, + {0x39, {SGMII8, SGMII7, SGMII6, PCIE2, SGMII4, SGMII3, SGMII2, + PCIE1 } }, + {0x4B, {PCIE2, PCIE2, PCIE2, PCIE2, XFI4, XFI3, XFI2, XFI1 } }, + {0x4C, {XFI8, XFI7, XFI6, XFI5, PCIE1, PCIE1, PCIE1, PCIE1 } }, + {0x4D, {SGMII8, SGMII7, PCIE2, PCIE2, SGMII4, SGMII3, PCIE1, PCIE1 } }, {} }; static struct serdes_config serdes2_cfg_tbl[] = { @@ -64,6 +69,7 @@ static struct serdes_config serdes2_cfg_tbl[] = { SATA2 } }, {0x4A, {SGMII9, SGMII10, SGMII11, SGMII12, PCIE4, PCIE4, SATA1, SATA2 } }, + {0x57, {PCIE3, PCIE3, PCIE3, PCIE3, PCIE4, PCIE4, SGMII15, SGMII16 } }, {} }; diff --git a/board/freescale/ls2080aqds/eth.c b/board/freescale/ls2080aqds/eth.c index 95ff68b..8618506 100644 --- a/board/freescale/ls2080aqds/eth.c +++ b/board/freescale/ls2080aqds/eth.c @@ -64,7 +64,7 @@ static int sgmii_riser_phy_addr[] = { }; /* Slot2 does not have EMI connections */ -#define EMI_NONE 0xFFFFFFFF +#define EMI_NONE 0xFF #define EMI1_SLOT1 0 #define EMI1_SLOT2 1 #define EMI1_SLOT3 2 @@ -470,7 +470,49 @@ static void initialize_dpmac_to_slot(void) } break; + case 0x39: + printf("qds: WRIOP: Supported SerDes1 Protocol 0x%02x\n", + serdes1_prtcl); + if (hwconfig_f("xqsgmii", env_hwconfig)) { + lane_to_slot_fsm1[0] = EMI1_SLOT3; + lane_to_slot_fsm1[1] = EMI1_SLOT3; + lane_to_slot_fsm1[2] = EMI1_SLOT3; + lane_to_slot_fsm1[3] = EMI_NONE; + } else { + lane_to_slot_fsm1[0] = EMI_NONE; + lane_to_slot_fsm1[1] = EMI_NONE; + lane_to_slot_fsm1[2] = EMI_NONE; + lane_to_slot_fsm1[3] = EMI_NONE; + } + lane_to_slot_fsm1[4] = EMI1_SLOT3; + lane_to_slot_fsm1[5] = EMI1_SLOT3; + lane_to_slot_fsm1[6] = EMI1_SLOT3; + lane_to_slot_fsm1[7] = EMI_NONE; + break; + + case 0x4D: + printf("qds: WRIOP: Supported SerDes1 Protocol 0x%02x\n", + serdes1_prtcl); + if (hwconfig_f("xqsgmii", env_hwconfig)) { + lane_to_slot_fsm1[0] = EMI1_SLOT3; + lane_to_slot_fsm1[1] = EMI1_SLOT3; + lane_to_slot_fsm1[2] = EMI_NONE; + lane_to_slot_fsm1[3] = EMI_NONE; + } else { + lane_to_slot_fsm1[0] = EMI_NONE; + lane_to_slot_fsm1[1] = EMI_NONE; + lane_to_slot_fsm1[2] = EMI_NONE; + lane_to_slot_fsm1[3] = EMI_NONE; + } + lane_to_slot_fsm1[4] = EMI1_SLOT3; + lane_to_slot_fsm1[5] = EMI1_SLOT3; + lane_to_slot_fsm1[6] = EMI_NONE; + lane_to_slot_fsm1[7] = EMI_NONE; + break; + case 0x2A: + case 0x4B: + case 0x4C: printf("qds: WRIOP: Supported SerDes1 Protocol 0x%02x\n", serdes1_prtcl); break; @@ -505,6 +547,38 @@ static void initialize_dpmac_to_slot(void) lane_to_slot_fsm2[7] = EMI1_SLOT6; } break; + + case 0x47: + printf("qds: WRIOP: Supported SerDes2 Protocol 0x%02x\n", + serdes2_prtcl); + lane_to_slot_fsm2[0] = EMI_NONE; + lane_to_slot_fsm2[1] = EMI1_SLOT5; + lane_to_slot_fsm2[2] = EMI1_SLOT5; + lane_to_slot_fsm2[3] = EMI1_SLOT5; + + if (hwconfig_f("xqsgmii", env_hwconfig)) { + lane_to_slot_fsm2[4] = EMI_NONE; + lane_to_slot_fsm2[5] = EMI1_SLOT5; + lane_to_slot_fsm2[6] = EMI1_SLOT5; + lane_to_slot_fsm2[7] = EMI1_SLOT5; + } + break; + + case 0x57: + printf("qds: WRIOP: Supported SerDes2 Protocol 0x%02x\n", + serdes2_prtcl); + if (hwconfig_f("xqsgmii", env_hwconfig)) { + lane_to_slot_fsm2[0] = EMI_NONE; + lane_to_slot_fsm2[1] = EMI_NONE; + lane_to_slot_fsm2[2] = EMI_NONE; + lane_to_slot_fsm2[3] = EMI_NONE; + } + lane_to_slot_fsm2[4] = EMI_NONE; + lane_to_slot_fsm2[5] = EMI_NONE; + lane_to_slot_fsm2[6] = EMI1_SLOT5; + lane_to_slot_fsm2[7] = EMI1_SLOT5; + break; + default: printf(" %s qds: WRIOP: Unsupported SerDes2 Protocol 0x%02x\n", __func__ , serdes2_prtcl); @@ -537,8 +611,10 @@ void ls2080a_handle_phy_interface_sgmii(int dpmac_id) switch (serdes1_prtcl) { case 0x07: + case 0x39: + case 0x4D: + lane = serdes_get_first_lane(FSL_SRDS_1, SGMII1 + dpmac_id - 1); - lane = serdes_get_first_lane(FSL_SRDS_1, SGMII1 + dpmac_id); slot = lane_to_slot_fsm1[lane]; switch (++slot) { @@ -559,6 +635,26 @@ void ls2080a_handle_phy_interface_sgmii(int dpmac_id) wriop_set_mdio(dpmac_id, bus); break; case 3: + if (slot == EMI_NONE) + return; + if (serdes1_prtcl == 0x39) { + wriop_set_phy_address(dpmac_id, + riser_phy_addr[dpmac_id - 2]); + if (dpmac_id >= 6 && hwconfig_f("xqsgmii", + env_hwconfig)) + wriop_set_phy_address(dpmac_id, + riser_phy_addr[dpmac_id - 3]); + } else { + wriop_set_phy_address(dpmac_id, + riser_phy_addr[dpmac_id - 2]); + if (dpmac_id >= 7 && hwconfig_f("xqsgmii", + env_hwconfig)) + wriop_set_phy_address(dpmac_id, + riser_phy_addr[dpmac_id - 3]); + } + dpmac_info[dpmac_id].board_mux = EMI1_SLOT3; + bus = mii_dev_for_muxval(EMI1_SLOT3); + wriop_set_mdio(dpmac_id, bus); break; case 4: break; @@ -579,6 +675,8 @@ serdes2: case 0x07: case 0x08: case 0x49: + case 0x47: + case 0x57: lane = serdes_get_first_lane(FSL_SRDS_2, SGMII9 + (dpmac_id - 9)); slot = lane_to_slot_fsm2[lane]; @@ -597,7 +695,23 @@ serdes2: wriop_set_mdio(dpmac_id, bus); break; case 5: - break; + if (slot == EMI_NONE) + return; + if (serdes2_prtcl == 0x47) { + wriop_set_phy_address(dpmac_id, + riser_phy_addr[dpmac_id - 10]); + if (dpmac_id >= 14 && hwconfig_f("xqsgmii", + env_hwconfig)) + wriop_set_phy_address(dpmac_id, + riser_phy_addr[dpmac_id - 11]); + } else { + wriop_set_phy_address(dpmac_id, + riser_phy_addr[dpmac_id - 11]); + } + dpmac_info[dpmac_id].board_mux = EMI1_SLOT5; + bus = mii_dev_for_muxval(EMI1_SLOT5); + wriop_set_mdio(dpmac_id, bus); + break; case 6: /* Slot housing a SGMII riser card? */ wriop_set_phy_address(dpmac_id, @@ -691,6 +805,8 @@ void ls2080a_handle_phy_interface_xsgmii(int i) switch (serdes1_prtcl) { case 0x2A: + case 0x4B: + case 0x4C: /* * XFI does not need a PHY to work, but to avoid U-Boot use * default PHY address which is zero to a MAC when it found