From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f65.google.com (mail-wm0-f65.google.com [74.125.82.65]) by dpdk.org (Postfix) with ESMTP id EB21C5F11 for ; Fri, 16 Mar 2018 10:37:46 +0100 (CET) Received: by mail-wm0-f65.google.com with SMTP id h76so1811697wme.4 for ; Fri, 16 Mar 2018 02:37:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=BLDQEJWJlNNgxcrB1Ul2aT+djhT+VVGSz91qM9ohAJI=; b=cI2LB4Mzqq6NJAmEE85R2BUllhSzsDZ2HgyF2PLXYkMImln4VOpc9fSM/OoMRS8dfv euH8a3Sj6JZeitk0rhH+2sxgC6HquNRRrsUXbavzYNSdTps1Um8YHuBT6W2v03snqTyv B2llRo4QEQy45RdxdYFgjw+MyzYIFEyuUn+w/P70B7sj8bn8DDLSQFnBY1GadhpzKrLE v7pu5PxPSB5en9S7mNnDnhnD1JNH3Nxp4zDKcVX0vAj1VA0y8gF4CJSf2gSGymFgiNvo uyR3XbKuRUtp41DZ6Ju6wXDeQPTuFQW/w7gU8FORxDucKTCrNcqQMih8T8ZPKvH4eyBg ZUyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=BLDQEJWJlNNgxcrB1Ul2aT+djhT+VVGSz91qM9ohAJI=; b=ks/gFIVmDLek2TQH9/mhawagxk4S2uPtl8UGe75I9ABiBgqQVagLh9moe0iw8sv1Y1 ThIuauxxHeDFzxKTS3aUq1uQdK+Plr0IL9gS4zWpQ+KvZomLuPaxQ8oxXmGO2FjibcST LxQAM/WMYv9lg2tcQjZen2zDnaWz1mK7iTk2J9s5G/7YhRFoKjdURJFcquOQWdNj4Gu6 GvCI6yW62lClli4EqHI+MZ3Gj7elRb6ongzqpViPuBaTGwWMU9bb9twM5LCN1Wj/QDWD 1LczgL4sOvwSXiS/UN9+m/dHgQzUB+4t0Tmjt5EMCjxb6LWxJYplvQ6ATsNTjyazxjP7 wDTg== X-Gm-Message-State: AElRT7HETe7RJd8nLCKM5ec4u7SKV2Jm1c4XdkfTsJWCxGQ3mF9kdyzU 7FlJma+Pkg8IQXf/4RcjBNmcNdOU X-Google-Smtp-Source: AG47ELubJXp7ri9c/uu6evGkBnw/7bqhoQDBCRc0bJUJo/a7Q+9n+A59rztI7ierc0e9NSVeTVGjTQ== X-Received: by 10.28.177.86 with SMTP id a83mr1122238wmf.143.1521193065469; Fri, 16 Mar 2018 02:37:45 -0700 (PDT) Received: from cougar.6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id j126sm5066842wmb.33.2018.03.16.02.37.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Mar 2018 02:37:44 -0700 (PDT) From: Zijie Pan To: dev@dpdk.org Cc: remy.horton@intel.com Date: Fri, 16 Mar 2018 10:36:50 +0100 Message-Id: <1521193010-25050-1-git-send-email-zijie.pan@6wind.com> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1520828243-25191-1-git-send-email-zijie.pan@6wind.com> References: <1520828243-25191-1-git-send-email-zijie.pan@6wind.com> Subject: [dpdk-dev] [PATCH v2 0/5] get the information and data of EEPROM X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Mar 2018 09:37:47 -0000 Add APIs to read information from the DPDK applictions. It can be used to dump the EEPROM of plugin modules (SFP+, QSFP, etc.). Two APIs are introduced to access eeprom: - rte_eth_dev_get_module_info - rte_eth_dev_get_module_eeprom Applications based on DPDK can dump eeprom by calling those two APIs. Then, each PMD has to implement these callbacks for e1000, ixgbe, i40e, etc. Patch for example/ethtool is used to test this function. It can get the raw data of eeprom. See below how both DPDK applications (ethtool) and Linux kernel are dumping the same eeprom of a same NIC. - Start example/ethtool: ./examples/ethtool/ethtool-app/x86_64-native-linuxapp-gcc/ethtool -c 0xf -n 4 --socket-mem 1024,0 -- -i EthApp> drvinfo Port 0 driver: net_ixgbe (ver: DPDK 18.05.0-rc0) firmware-version: 0x18b30001 bus-info: 0000:04:00.0 EthApp> module-eeprom [UINT16]: module-eeprom Dump plug-in module EEPROM to file EthApp> module-eeprom 0 my-module-eeprom.bin Total plug-in module EEPROM length: 512 bytes EthApp> quit - HexDump of this eeprom file: # xxd my-module-eeprom.bin 0000000: 0304 0710 0000 0100 0000 0006 6702 0000 ............g... 0000010: 0803 001e 4f45 4d20 2020 2020 2020 2020 ....OEM 0000020: 2020 2020 0000 1b21 5346 502d 3130 472d ...!SFP-10G- 0000030: 5352 2d49 5420 2020 4120 2020 0352 0024 SR-IT A .R.$ 0000040: 003a 0000 5751 3136 3034 3132 4131 3135 .:..WQ160412A115 0000050: 2020 2020 3135 3136 3130 2020 68fa 033b 151610 h..; 0000060: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000070: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000080: ffff ffff ffff ffff ffff ffff ffff ffff ................ 0000090: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000a0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000b0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000c0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000d0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000e0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000f0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 0000100: 5000 fb00 4b00 0000 8ca0 7530 88b8 7918 P...K.....u0..y. 0000110: 1d4c 01f4 1b58 03e8 3de9 03e8 2710 04eb .L...X..=...'... 0000120: 2710 0064 1f07 007e 0000 0000 0000 0000 '..d...~........ 0000130: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000140: 0000 0000 3f80 0000 0000 0000 0100 0000 ....?........... 0000150: 0100 0000 0100 0000 0100 0000 0000 002d ...............- 0000160: 2c59 810a 13c7 1752 0001 0000 0000 0200 ,Y.....R........ 0000170: 0040 0000 0040 0000 0000 0000 0000 0000 .@...@.......... 0000180: ffff ffff ffff ffff ffff ffff ffff ffff ................ 0000190: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00001a0: ffff faff ffff ffff ffff ffff ffff ffff ................ 00001b0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00001c0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00001d0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00001e0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00001f0: ffff ffff ffff ffff 0003 0100 0000 0000 ................ - Rerun same dump using Linux's kernel ethtool. # ./install/sbin/dpdk-devbind --bind=ixgbe 04:00.0 # ethtool -m p2p1 raw on > meeprom-kernel.bin # xxd meeprom-kernel.bin 0000000: 0304 0710 0000 0100 0000 0006 6702 0000 ............g... 0000010: 0803 001e 4f45 4d20 2020 2020 2020 2020 ....OEM 0000020: 2020 2020 0000 1b21 5346 502d 3130 472d ...!SFP-10G- 0000030: 5352 2d49 5420 2020 4120 2020 0352 0024 SR-IT A .R.$ 0000040: 003a 0000 5751 3136 3034 3132 4131 3135 .:..WQ160412A115 0000050: 2020 2020 3135 3136 3130 2020 68fa 033b 151610 h..; 0000060: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000070: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000080: ffff ffff ffff ffff ffff ffff ffff ffff ................ 0000090: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000a0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000b0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000c0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000d0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000e0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000f0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 0000100: 5000 fb00 4b00 0000 8ca0 7530 88b8 7918 P...K.....u0..y. 0000110: 1d4c 01f4 1b58 03e8 3de9 03e8 2710 04eb .L...X..=...'... 0000120: 2710 0064 1f07 007e 0000 0000 0000 0000 '..d...~........ 0000130: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000140: 0000 0000 3f80 0000 0000 0000 0100 0000 ....?........... 0000150: 0100 0000 0100 0000 0100 0000 0000 002d ...............- 0000160: 2899 8146 0058 0001 0001 0000 0000 8200 (..F.X.......... 0000170: 0540 0000 0540 0000 0000 0000 0000 0000 .@...@.......... 0000180: ffff ffff ffff ffff ffff ffff ffff ffff ................ 0000190: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00001a0: ffff faff ffff ffff ffff ffff ffff ffff ................ 00001b0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00001c0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00001d0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00001e0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00001f0: ffff ffff ffff ffff 0003 0100 0000 0000 ................ Both DPDK's my-module-eeprom.bin and Kernel's meeprom-kernel.bin are the same. v2 changes: - Fix typo in features.rst. - Fix checkpatch warnings regarding long lines. - Update function pcmd_module_eeprom_callback(). Zijie Pan (5): ethdev: add access to eeprom examples/ethtool: add a new command module-eeprom net/ixgbe: add module EEPROM callbacks for ixgbe net/e1000: add module EEPROM callbacks for e1000 net/i40e: add module EEPROM callbacks for i40e doc/guides/nics/features.rst | 11 +++ doc/guides/sample_app_ug/ethtool.rst | 2 + drivers/net/e1000/base/e1000_phy.h | 8 ++ drivers/net/e1000/igb_ethdev.c | 86 +++++++++++++++++++ drivers/net/i40e/i40e_ethdev.c | 147 +++++++++++++++++++++++++++++++++ drivers/net/ixgbe/ixgbe_ethdev.c | 79 ++++++++++++++++++ examples/ethtool/ethtool-app/ethapp.c | 64 ++++++++++++++ examples/ethtool/lib/rte_ethtool.c | 30 +++++++ examples/ethtool/lib/rte_ethtool.h | 34 ++++++++ lib/librte_ether/rte_dev_info.h | 18 ++++ lib/librte_ether/rte_ethdev.c | 26 ++++++ lib/librte_ether/rte_ethdev.h | 35 ++++++++ lib/librte_ether/rte_ethdev_core.h | 12 +++ 13 files changed, 552 insertions(+) -- 1.7.10.4