mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 05:50:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			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__ */
 |