net/ixgbe/base: fix host interface shadow RAM read
authorGuinan Sun <guinanx.sun@intel.com>
Thu, 9 Jul 2020 08:00:28 +0000 (08:00 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Sat, 11 Jul 2020 04:18:53 +0000 (06:18 +0200)
Host interface Shadow RAM Read (0x31) command response
buffer length should be stored in two bytes, instead of one byte.
This patch fixes it.

Fixes: e6102361b1d4 ("net/ixgbe/base: use 2 bytes for flash read command")
Cc: stable@dpdk.org
Signed-off-by: Mateusz Kowalski <mateusz.kowalski@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
drivers/net/ixgbe/base/ixgbe_common.c
drivers/net/ixgbe/base/ixgbe_type.h

index 4eb98dc..5889410 100644 (file)
@@ -4600,7 +4600,8 @@ s32 ixgbe_host_interface_command(struct ixgbe_hw *hw, u32 *buffer,
         * Read Flash command requires reading buffer length from
         * two byes instead of one byte
         */
-       if (resp->cmd == 0x30) {
+       if (resp->cmd == IXGBE_HOST_INTERFACE_FLASH_READ_CMD ||
+           resp->cmd == IXGBE_HOST_INTERFACE_SHADOW_RAM_READ_CMD) {
                for (; bi < dword_len + 2; bi++) {
                        buffer[bi] = IXGBE_READ_REG_ARRAY(hw, IXGBE_FLEX_MNG,
                                                          bi);
index 15e9370..bc927a3 100644 (file)
@@ -4364,4 +4364,16 @@ struct ixgbe_hw {
 #define IXGBE_NW_MNG_IF_SEL_MDIO_PHY_ADD       \
                                (0x1F << IXGBE_NW_MNG_IF_SEL_MDIO_PHY_ADD_SHIFT)
 
+/* Code Command (Flash I/F Interface) */
+#define IXGBE_HOST_INTERFACE_FLASH_READ_CMD                    0x30
+#define IXGBE_HOST_INTERFACE_SHADOW_RAM_READ_CMD               0x31
+#define IXGBE_HOST_INTERFACE_FLASH_WRITE_CMD                   0x32
+#define IXGBE_HOST_INTERFACE_SHADOW_RAM_WRITE_CMD              0x33
+#define IXGBE_HOST_INTERFACE_FLASH_MODULE_UPDATE_CMD           0x34
+#define IXGBE_HOST_INTERFACE_FLASH_BLOCK_EREASE_CMD            0x35
+#define IXGBE_HOST_INTERFACE_SHADOW_RAM_DUMP_CMD               0x36
+#define IXGBE_HOST_INTERFACE_FLASH_INFO_CMD                    0x37
+#define IXGBE_HOST_INTERFACE_APPLY_UPDATE_CMD                  0x38
+#define IXGBE_HOST_INTERFACE_MASK_CMD                          0x000000FF
+
 #endif /* _IXGBE_TYPE_H_ */