xref: /dpdk/drivers/net/ngbe/base/ngbe_eeprom.h (revision 91e64c0e5d7ee7eaf39df9510bfc60bbcae14ca9)
1f501a195SJiawen Wu /* SPDX-License-Identifier: BSD-3-Clause
2f501a195SJiawen Wu  * Copyright(c) 2018-2021 Beijing WangXun Technology Co., Ltd.
3f501a195SJiawen Wu  * Copyright(c) 2010-2017 Intel Corporation
4f501a195SJiawen Wu  */
5f501a195SJiawen Wu 
6f501a195SJiawen Wu #ifndef _NGBE_EEPROM_H_
7f501a195SJiawen Wu #define _NGBE_EEPROM_H_
8f501a195SJiawen Wu 
9506abd4aSJiawen Wu #define NGBE_EEPROM_VERSION_L          0x1D
10506abd4aSJiawen Wu #define NGBE_EEPROM_VERSION_H          0x1E
11f501a195SJiawen Wu #define NGBE_CALSUM_CAP_STATUS         0x10224
12f501a195SJiawen Wu #define NGBE_EEPROM_VERSION_STORE_REG  0x1022C
13f501a195SJiawen Wu 
14*91e64c0eSJiawen Wu #define NGBE_FW_SUPPORT_LLDP		0x19
15*91e64c0eSJiawen Wu #define NGBE_FW_GET_LLDP		0x1B
16*91e64c0eSJiawen Wu #define NGBE_FW_MASK			0xFF
17*91e64c0eSJiawen Wu 
18f501a195SJiawen Wu s32 ngbe_init_eeprom_params(struct ngbe_hw *hw);
19f501a195SJiawen Wu s32 ngbe_validate_eeprom_checksum_em(struct ngbe_hw *hw, u16 *checksum_val);
20f501a195SJiawen Wu s32 ngbe_get_eeprom_semaphore(struct ngbe_hw *hw);
21f501a195SJiawen Wu void ngbe_release_eeprom_semaphore(struct ngbe_hw *hw);
22506abd4aSJiawen Wu s32 ngbe_save_eeprom_version(struct ngbe_hw *hw);
23506abd4aSJiawen Wu 
249459ea29SJiawen Wu s32 ngbe_ee_readw_buffer(struct ngbe_hw *hw, u32 offset, u32 words,
259459ea29SJiawen Wu 				void *data);
26506abd4aSJiawen Wu s32 ngbe_ee_read32(struct ngbe_hw *hw, u32 addr, u32 *data);
27f501a195SJiawen Wu 
289459ea29SJiawen Wu s32 ngbe_ee_writew_buffer(struct ngbe_hw *hw, u32 offset, u32 words,
299459ea29SJiawen Wu 				void *data);
309459ea29SJiawen Wu 
31f501a195SJiawen Wu #endif /* _NGBE_EEPROM_H_ */
32