sfc_ef100: register accesses on EF100
EF100 adds a few new valid addresses for efx_writed_page(), as well as a Function Control Window in the BAR whose location is variable. Signed-off-by: Edward Cree <ecree@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
adf72ee3f7
commit
61060c5dc5
@ -75,6 +75,11 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
static inline u32 efx_reg(struct efx_nic *efx, unsigned int reg)
|
||||
{
|
||||
return efx->reg_base + reg;
|
||||
}
|
||||
|
||||
#ifdef EFX_USE_QWORD_IO
|
||||
static inline void _efx_writeq(struct efx_nic *efx, __le64 value,
|
||||
unsigned int reg)
|
||||
@ -217,8 +222,11 @@ static inline void efx_reado_table(struct efx_nic *efx, efx_oword_t *value,
|
||||
efx_reado(efx, value, reg + index * sizeof(efx_oword_t));
|
||||
}
|
||||
|
||||
/* default VI stride (step between per-VI registers) is 8K */
|
||||
#define EFX_DEFAULT_VI_STRIDE 0x2000
|
||||
/* default VI stride (step between per-VI registers) is 8K on EF10 and
|
||||
* 64K on EF100
|
||||
*/
|
||||
#define EFX_DEFAULT_VI_STRIDE 0x2000
|
||||
#define EF100_DEFAULT_VI_STRIDE 0x10000
|
||||
|
||||
/* Calculate offset to page-mapped register */
|
||||
static inline unsigned int efx_paged_reg(struct efx_nic *efx, unsigned int page,
|
||||
@ -265,7 +273,9 @@ _efx_writed_page(struct efx_nic *efx, const efx_dword_t *value,
|
||||
#define efx_writed_page(efx, value, reg, page) \
|
||||
_efx_writed_page(efx, value, \
|
||||
reg + \
|
||||
BUILD_BUG_ON_ZERO((reg) != 0x400 && \
|
||||
BUILD_BUG_ON_ZERO((reg) != 0x180 && \
|
||||
(reg) != 0x200 && \
|
||||
(reg) != 0x400 && \
|
||||
(reg) != 0x420 && \
|
||||
(reg) != 0x830 && \
|
||||
(reg) != 0x83c && \
|
||||
|
@ -964,6 +964,7 @@ struct efx_async_filter_insertion {
|
||||
* @xdp_rxq_info_failed: Have any of the rx queues failed to initialise their
|
||||
* xdp_rxq_info structures?
|
||||
* @mem_bar: The BAR that is mapped into membase.
|
||||
* @reg_base: Offset from the start of the bar to the function control window.
|
||||
* @monitor_work: Hardware monitor workitem
|
||||
* @biu_lock: BIU (bus interface unit) lock
|
||||
* @last_irq_cpu: Last CPU to handle a possible test interrupt. This
|
||||
@ -1142,6 +1143,7 @@ struct efx_nic {
|
||||
bool xdp_rxq_info_failed;
|
||||
|
||||
unsigned int mem_bar;
|
||||
u32 reg_base;
|
||||
|
||||
/* The following fields may be written more often */
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user