From: Pavel Belous Date: Mon, 29 Apr 2019 08:20:21 +0000 (+0000) Subject: net/atlantic: fix offsets for talking with firmware X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=8fd8aa74b25ed5be71e4b501e8eaa7f56185d451;p=dpdk.git net/atlantic: fix offsets for talking with firmware EEPROM write accesses start using non zero configuration memory accesses. This revealed an issue where firmware interface was actually always did the uploads starting with zero offset Fixes: 86d36773bd42 ("net/atlantic: implement firmware operations") Cc: stable@dpdk.org Signed-off-by: Igor Russkikh Signed-off-by: Pavel Belous --- diff --git a/drivers/net/atlantic/hw_atl/hw_atl_utils.c b/drivers/net/atlantic/hw_atl/hw_atl_utils.c index 1910bd4c94..b399ae392d 100644 --- a/drivers/net/atlantic/hw_atl/hw_atl_utils.c +++ b/drivers/net/atlantic/hw_atl/hw_atl_utils.c @@ -332,12 +332,13 @@ int hw_atl_utils_fw_upload_dwords(struct aq_hw_s *self, u32 a, u32 *p, goto err_exit; } if (IS_CHIP_FEATURE(REVISION_B1)) { - u32 offset = 0; + u32 mbox_offset = (a - self->rpc_addr) / sizeof(u32); + u32 data_offset = 0; - for (; offset < cnt; ++offset) { - aq_hw_write_reg(self, 0x328, p[offset]); + for (; data_offset < cnt; ++mbox_offset, ++data_offset) { + aq_hw_write_reg(self, 0x328, p[data_offset]); aq_hw_write_reg(self, 0x32C, - (0x80000000 | (0xFFFF & (offset * 4)))); + (0x80000000 | (0xFFFF & (mbox_offset * 4)))); hw_atl_mcp_up_force_intr_set(self, 1); /* 1000 times by 10us = 10ms */ AQ_HW_WAIT_FOR((aq_hw_read_reg(self,