mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-18 18:59:44 +00:00
4684a7a43a
Adds support for Network Interface controllers found on OcteonTX2 SoC platforms. Signed-off-by: Suneel Garapati <sgarapati@marvell.com> Signed-off-by: Stefan Roese <sr@denx.de> Cc: Joe Hershberger <joe.hershberger@ni.com>
90 lines
1.6 KiB
C
90 lines
1.6 KiB
C
/* SPDX-License-Identifier: GPL-2.0
|
|
*
|
|
* Copyright (C) 2018 Marvell International Ltd.
|
|
*/
|
|
|
|
#ifndef __NPC_H__
|
|
#define __NPC_H__
|
|
|
|
#define RSVD_MCAM_ENTRIES_PER_PF 2 /** Ucast and Bcast */
|
|
#define RSVD_MCAM_ENTRIES_PER_NIXLF 1 /** Ucast for VFs */
|
|
|
|
struct npc_kpu_profile_cam {
|
|
u8 state;
|
|
u8 state_mask;
|
|
u16 dp0;
|
|
u16 dp0_mask;
|
|
u16 dp1;
|
|
u16 dp1_mask;
|
|
u16 dp2;
|
|
u16 dp2_mask;
|
|
};
|
|
|
|
struct npc_kpu_profile_action {
|
|
u8 errlev;
|
|
u8 errcode;
|
|
u8 dp0_offset;
|
|
u8 dp1_offset;
|
|
u8 dp2_offset;
|
|
u8 bypass_count;
|
|
u8 parse_done;
|
|
u8 next_state;
|
|
u8 ptr_advance;
|
|
u8 cap_ena;
|
|
u8 lid;
|
|
u8 ltype;
|
|
u8 flags;
|
|
u8 offset;
|
|
u8 mask;
|
|
u8 right;
|
|
u8 shift;
|
|
};
|
|
|
|
struct npc_kpu_profile {
|
|
int cam_entries;
|
|
int action_entries;
|
|
struct npc_kpu_profile_cam *cam;
|
|
struct npc_kpu_profile_action *action;
|
|
};
|
|
|
|
struct npc_pkind {
|
|
struct rsrc_bmap rsrc;
|
|
u32 *pfchan_map;
|
|
};
|
|
|
|
struct npc_mcam {
|
|
struct rsrc_bmap rsrc;
|
|
u16 *pfvf_map;
|
|
u16 total_entries; /* Total number of MCAM entries */
|
|
u16 entries; /* Total - reserved for NIX LFs */
|
|
u8 banks_per_entry; /* Number of keywords in key */
|
|
u8 keysize;
|
|
u8 banks; /* Number of MCAM banks */
|
|
u16 banksize; /* Number of MCAM entries in each bank */
|
|
u16 counters; /* Number of match counters */
|
|
u16 nixlf_offset;
|
|
u16 pf_offset;
|
|
};
|
|
|
|
struct nix_af_handle;
|
|
struct nix_handle;
|
|
struct rvu_hwinfo;
|
|
|
|
struct npc_af {
|
|
struct nix_af_handle *nix_af;
|
|
struct npc_pkind pkind;
|
|
void __iomem *npc_af_base;
|
|
u8 npc_kpus; /** Number of parser units */
|
|
struct npc_mcam mcam;
|
|
struct rvu_block block;
|
|
struct rvu_hwinfo *hw;
|
|
};
|
|
|
|
struct npc {
|
|
struct npc_af *npc_af;
|
|
void __iomem *npc_base;
|
|
struct nix_handle *nix;
|
|
}
|
|
|
|
#endif /* __NPC_H__ */
|
|
|