From patchwork Tue Aug 29 19:19:57 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Manlunas, Felix" X-Patchwork-Id: 807244 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=CAVIUMNETWORKS.onmicrosoft.com header.i=@CAVIUMNETWORKS.onmicrosoft.com header.b="kXtHGkJz"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xhdjP6V6Gz9s81 for ; Wed, 30 Aug 2017 05:19:05 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751256AbdH2TTD (ORCPT ); Tue, 29 Aug 2017 15:19:03 -0400 Received: from mail-bl2nam02on0045.outbound.protection.outlook.com ([104.47.38.45]:46038 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751186AbdH2TTB (ORCPT ); Tue, 29 Aug 2017 15:19:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=R938uOVhe2A9uhvn3mtlIuAqEWe3ZpPalrgaD7IfN64=; b=kXtHGkJzszQGq/KYxG+wM2690PDvr/gZnOKfbLISzz9Fz40Foxq5l7kBhdYRgQy+z47423f83XLbW4yRHIRlLKGsCNi3PbfSSScuvT7nO9rqyP81YrR28ZIkwbjPdhJMaxBpu4LE2T+QqmXz9EQYhfFxvfuKAyENGa0gVXLi4E8= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Felix.Manlunas@cavium.com; Received: from localhost (50.233.148.156) by CY4PR07MB3176.namprd07.prod.outlook.com (10.172.115.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1385.9; Tue, 29 Aug 2017 19:18:59 +0000 Date: Tue, 29 Aug 2017 12:19:57 -0700 From: Felix Manlunas To: davem@davemloft.net Cc: netdev@vger.kernel.org, raghu.vatsavayi@cavium.com, derek.chickles@cavium.com, satananda.burla@cavium.com, weilin.chang@cavium.com Subject: [PATCH V2 net-next] liquidio: show NIC's U-Boot version in a dev_info() message Message-ID: <20170829191957.GA12243@felix-thinkpad.cavium.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.6.1 (2016-04-27) X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: MWHPR1301CA0011.namprd13.prod.outlook.com (10.174.164.152) To CY4PR07MB3176.namprd07.prod.outlook.com (10.172.115.142) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6c56474a-a537-4504-ec5d-08d4ef12cd04 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:CY4PR07MB3176; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3176; 3:Wvl/DVpORUvAcjesCDyA4Dtf89GptjdLxK4zIc0e6orXNpidzPm9xyQzE0WSq8z1mnr8ojjMLjbFVBXS1nT4vqALU3NQyoYS9L1jH51vScDZlORpobiVWmXmL18Wt8HbNor1IxiSLEoSFbSp3BtPLW1K2t0pMBC/OzPk2zO2LOl9tEy0xzsmQE9Re9jn4CrunNQa6LLDV1UL2maR7mG1b7twWubZmcXASjV+LKDmFzdhxnpjySzbu0J023Dvi1ub; 25:nYQ/ISlGnFMwDtQPjNR6cHDhr30U54Jb4u3C78H904fy0rIpTtiI277RUdjBsneZ1zyLToWvNSMCjtMVr0qkHeXbX8ujbrZAotZw9N+4BLg9Pe/Kp9vIF2npJOaqdPGIZbp3WhoELDW06sUpeI3Ij2Dxo2Amywrj11A0RQupkKRTDlE4MyS3NTIndqQjkH0ZrsDeChd8mso4yItZzO5ql1Rw7v30smx92eKZgxLzHYTLYcREc360evFT3TRz4hiIqvmB5I1ZXPS7MOprAOGk6h0JUEy7cBDIb3vnzqPu7qArSnHrFjke+0PqD+xfyCRpLoyxf/iPprULO+NEhm4iFA==; 31:IjVK20AaffiwDNn492IGd8UIziT0Gw20VMoxL4nZvokZYFiEtysFqZ9BE5le5r7jOjY1TtmRhw4vvNcCod1JcWM2lK4D4nSVgaeHxZlVf/1Ms7xmEGTFfdBEzvvS09cbxMkjAqxCl4bQPvKCtJtLvhYYCXwbKBeq/oBkAzPFgIPIltx6eTpL+sUGKGlYrl7tDAHgrTzoC7u2aId9bSTIbzzRRInj0g/5Yvc1jpRbw0k= X-MS-TrafficTypeDiagnostic: CY4PR07MB3176: X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3176; 20:S+hXbw67Qjyhc2LAbzwtTR5iklXSrsYKRW/6fIyUQHUszoQXrw2ilkP1JZnMbeXavaZZQLysjeKlPwdcSA5Qb1aWqHJo4wNB91AciC9y2cw8B335zhCrh13zlCCKd23otx6VFuLaqWmuQ4e0E8SfU5iDu7BFXttX4y4puFxFXATng/S0XxcFaGvWqbEnMqj5vff+CsuO5OHU3NjqfhtKS0LGdoPtAxXTp/Jajsp98cTSKdxJXLXms7OjCvmBgJuCp8KyZ2Sa5DD0G1d9kTfW/ZAoAkJGh1j12KqJb0xlAKE7eE58BPzFcXD4rG1BLQjs8+OYZbT+qcEBl0+JmkK5GsWq9BtGQzSea9Aavwi31/r7NdX80x1tK60g9md0SJ8Umfh6xs/jkNH4BJk05ndUqh9O76C/XrX1E3fER8kby5KlGseYgDPeQrtId998tByqcTfiIgUGS5oc8nT0w/4Oy3xk9RwM7q1FDVPfVqYfdotNxV+LR9KEpPsyLGvuAJfQ; 4:y2lkq8ILvobKzWsC2Or52ctFQVm4EPFevF9QXDWOrC83AWVu4z9hshba4wxstiZy1uNfEQiC7V9WSvXe0kcD+TPBx60SuuCYvcr4pMXbsX/wVB20FVR0SFe/w9KKRcc2iMh0q7z0GEUHxE9evQ5D0xJ4SMhnVCWDOu6a0IOEMf2ygt794PBzy6Rit3DJuG3UzQpWJX94y0qjiO8jJZMsYEOqL0Bd1Kcp90ULk9UPl36I6deu0FqoLN0Db55E8jDH4sS0EVjFySzgGdGnxDRo97Eys5NsW3ZZnjXq5S6deEw= X-Exchange-Antispam-Report-Test: UriScan:(788757137089); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(6041248)(20161123555025)(20161123558100)(20161123560025)(20161123562025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR07MB3176; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR07MB3176; X-Forefront-PRVS: 0414DF926F X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(6009001)(6069001)(54534003)(199003)(189002)(3846002)(6116002)(189998001)(6916009)(6486002)(23726003)(83506001)(4001350100001)(47776003)(1076002)(86362001)(7350300001)(66066001)(81156014)(8676002)(81166006)(97736004)(7736002)(107886003)(110136004)(6496005)(101416001)(53936002)(25786009)(305945005)(50986999)(68736007)(42186005)(50466002)(54356999)(76506005)(4326008)(105586002)(5660300001)(72206003)(478600001)(106356001)(33656002)(2351001)(2361001)(2906002)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3176; H:localhost; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3176; 23:CAlu63Z8Vo31YneKgvkIJ6qFEN7vooSXqo2H9r1tpfN2KUGtGnAfm2hgbh7iJ1yLp1jTCbZIO5kkSQko+eeeuq/XQepVK5MBafa/neZVKssep8hyOzpfZB0UNeeAsj5bdeMYpUiSNDoFmsVhxattr0pp7OYOOXqvvMkvjXjVkP+lmfcNGqlsARjalculK58e4d8TLILyJNzflu2QzxiqPc41UpRkjMZ22Uj0hXEOIu7Rn2giT/w5oYw74TG70gPISBbwsTmHgmry2XgNe8W3s58UWNO6keHB1PZeKhorhDmnmVHHZpjt3fDh9uxi+wYvDh24oQ3mZo7J2VTI1U38GP7YiA3aNMxNxxvLidM/Dw+MZ27dsfqgP72+V5Drldgva8+KqEetaMbvNodppJSkLxNS4fn6Lff8xU11mW3xEgHIPaSGgwCXz0CzUVeW8SYQ2WDipYs8GJ2HqqwkSgDeWyTmCUMfPpPjAUBtPTSEGPg4SZe7ZJsi0uYaTdg09h8mXikBTcILBcBLUmedbGDXY8FYO8LTHgXGDHGlM4c14uZkGDUTyD8jpy32l/mIFP8vK4pCrNYeuccJ44fNjSslX6prOsEKmDKEwo1tH58hfUP7xJf4SqeUs5QArcYjYgU+1pqbXSdayuoZM/GegUXiPHvv1yJSYAxDolOdDhO0buxq6QCgkS5h+ZSDL1Bl38PbSjmGDDjJrhK+DcHh+/EoFjiEWgTDDhLCd5MxFV4YNnDFfyc8c7vvWyOtqyB8YZTaH/Ov28BVuKDCxo5s3CFa2rYGTmTLgrVn+dXRWSJJZOMgeqXFOlQaa2Ad+fOL5PPht/N3Ed2PfhdNJVNl3Tkq2vBQXFEDwCaQEv1mO24oDtrP11cZY4skJUE4iGmGni4IkgDd4oDd8efLa6UcKm9mULvKG8wvaaUbmkh66xFcCJVgkE0xEIhvMgr1vTOBAzdmiW7kZANwjyqimjXFb8dGIoj1Kt996Ve+ya5vbsEFcvB+QdDZR1weGBmF85f6pVwQ0JrlJtyLZnf80JgQbjrkch10jqA98Q17N0lGrhefKILypDm10jn7cyn4izZ8xcvWI+hwRzWXtEVKmg20/HTG12cQruDGp95ZzXxXSbLDu0E/EtYo6jzab4UMVnCX47qHBWlA1JZyo/GRDr7XTSvRTbUd9+F70mo8Aio185i7Ht8= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3176; 6:b0Stv/HIcK3VvZjFSzOwJU4JPlVwH49MXmC0TOPipneKrFTcOBQKtsGHTb/8Y0eDAzTaqOb/YCd1MopasOnRU8tQtGXbYBbHrpIevi4WasauqAEelf+kmmvMLoNQ7RpkjlLhb1XdGEYUaik2yQfPVssfBzdaHeoh7ci4Klo4gHAEvE/gNX187E6FpMUY+t2sYuvIwWPqlhXuSDklS3t17q1JepzLVpFW6dJeO5XXKf/9SXg5zrSnz3hXEDKKIvLsetq8qJJ1N0KKbmjtGTkQUQwMN1zGWwAAXTMEh9wW0BvwkqGbstKrMMBWeW8g5YqsS68ancU31BjIBDGVaGQH/Q==; 5:7Cp7dwQFx3fpDiFXvEcpvflcv8OdOSKppmp8FF9AHdhBs1MRtyjLO8FDZI5MQGUe74MAQwosi2dKyH1tomrLQ5cUbUaukOhuZUEqJDMuL+fyiascGbiq1Y1bF5mulos2k0zeMp7otMT5mb3w2snXTg==; 24:Cd4XaIHQxUvofUwjxW0kf0frrCUemNm9QGZ/hTthBpNc+IAcoG6hsJnDLp5gT6+C36AszPbSgQYbwomBaOeVu8vPBcC2fcm/DghOLeETKHA=; 7:5zQaYmqAIz6+yFkvHFLKaNyVaBGkE25pqn9gfD5ZtPbZywsVF8bSLTE/vB8v61ZEP+jnHOcUeyNwCGhcqX6Wy70D043YRL8+5/ssMWQpSGFQkzyyJX1qeNlFF1b6VXmDq/rhmFxDUe2nj+yIAfR6wCHnyjeEMxE4Xj0hKdLdoB5ONfmghcMi+mCpskSd/UJzpdMxwz9+63qMUd5HIyDvNHUjDr0NRg1V5upQfcH1cRo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Aug 2017 19:18:59.2621 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3176 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Weilin Chang Signed-off-by: Weilin Chang Signed-off-by: Felix Manlunas --- Patch Change Log: V1 -> V2: * Move octeon_get_uboot_version() to a proper place to avoid forward declaration. * Remove complicated for-loops that search for substrings; replace them with calls to strstr(). * Don't add unnecessary fields to struct octeon_device. .../net/ethernet/cavium/liquidio/octeon_console.c | 78 ++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_console.c b/drivers/net/ethernet/cavium/liquidio/octeon_console.c index 19e5212..ec3dd69 100644 --- a/drivers/net/ethernet/cavium/liquidio/octeon_console.c +++ b/drivers/net/ethernet/cavium/liquidio/octeon_console.c @@ -574,6 +574,82 @@ int octeon_init_consoles(struct octeon_device *oct) return ret; } +static void octeon_get_uboot_version(struct octeon_device *oct) +{ + s32 bytes_read, tries, total_read; + struct octeon_console *console; + u32 console_num = 0; + char *uboot_ver; + char *buf; + char *p; + +#define OCTEON_UBOOT_VER_BUF_SIZE 512 + buf = kmalloc(OCTEON_UBOOT_VER_BUF_SIZE, GFP_KERNEL); + if (!buf) + return; + + if (octeon_console_send_cmd(oct, "setenv stdout pci\n", 50)) { + kfree(buf); + return; + } + + if (octeon_console_send_cmd(oct, "version\n", 1)) { + kfree(buf); + return; + } + + console = &oct->console[console_num]; + tries = 0; + total_read = 0; + + do { + /* Take console output regardless of whether it will + * be logged + */ + bytes_read = + octeon_console_read(oct, + console_num, buf + total_read, + OCTEON_UBOOT_VER_BUF_SIZE - 1 - + total_read); + if (bytes_read > 0) { + buf[bytes_read] = '\0'; + + total_read += bytes_read; + if (console->waiting) + octeon_console_handle_result(oct, console_num); + } else if (bytes_read < 0) { + dev_err(&oct->pci_dev->dev, "Error reading console %u, ret=%d\n", + console_num, bytes_read); + } + + tries++; + } while ((bytes_read > 0) && (tries < 16)); + + /* If nothing is read after polling the console, + * output any leftovers if any + */ + if ((total_read == 0) && (console->leftover[0])) { + dev_dbg(&oct->pci_dev->dev, "%u: %s\n", + console_num, console->leftover); + console->leftover[0] = '\0'; + } + + buf[OCTEON_UBOOT_VER_BUF_SIZE - 1] = '\0'; + + uboot_ver = strstr(buf, "U-Boot"); + if (uboot_ver) { + p = strstr(uboot_ver, "mips"); + if (p) { + p--; + *p = '\0'; + dev_info(&oct->pci_dev->dev, "%s\n", uboot_ver); + } + } + + kfree(buf); + octeon_console_send_cmd(oct, "setenv stdout serial\n", 50); +} + int octeon_add_console(struct octeon_device *oct, u32 console_num, char *dbg_enb) { @@ -611,6 +687,8 @@ int octeon_add_console(struct octeon_device *oct, u32 console_num, work = &oct->console_poll_work[console_num].work; + octeon_get_uboot_version(oct); + INIT_DELAYED_WORK(work, check_console); oct->console_poll_work[console_num].ctxptr = (void *)oct; oct->console_poll_work[console_num].ctxul = console_num;