Home | History | Annotate | Line # | Download | only in dev
if_cnmacvar.h revision 1.4
      1  1.4  simonb /*	$NetBSD: if_cnmacvar.h,v 1.4 2020/06/23 05:17:13 simonb Exp $	*/
      2  1.1  hikaru 
      3  1.1  hikaru #undef DEBUG
      4  1.1  hikaru #ifdef DEBUG
      5  1.4  simonb #define	dprintf printf
      6  1.1  hikaru #else
      7  1.4  simonb #define	dprintf(...)
      8  1.1  hikaru #endif
      9  1.1  hikaru 
     10  1.4  simonb #define	IS_MAC_MULTICASTBIT(addr) \
     11  1.1  hikaru         ((addr)[0] & 0x01)
     12  1.1  hikaru 
     13  1.4  simonb #define	SEND_QUEUE_SIZE		(32)
     14  1.4  simonb #define	GATHER_QUEUE_SIZE	(1024)
     15  1.4  simonb #define	FREE_QUEUE_SIZE		GATHER_QUEUE_SIZE
     16  1.4  simonb #define	RECV_QUEUE_SIZE		(GATHER_QUEUE_SIZE * 2)
     17  1.1  hikaru 
     18  1.4  simonb /* Number of mbufs per port to keep in the packet pool */
     19  1.4  simonb #define	CNMAC_MBUFS_PER_PORT	256
     20  1.1  hikaru 
     21  1.1  hikaru /* XXX MUST BE REPLACED WITH BUS_DMA!!! */
     22  1.1  hikaru paddr_t kvtophys(vaddr_t);
     23  1.1  hikaru /* XXX MUST BE REPLACED WITH BUS_DMA!!! */
     24  1.1  hikaru 
     25  1.1  hikaru struct _send_queue_entry;
     26  1.2  simonb struct octsmi_softc;
     27  1.2  simonb struct octgmx_port_softc;
     28  1.2  simonb struct octipd_softc;
     29  1.2  simonb struct octpip_softc;
     30  1.2  simonb struct octpko_softc;
     31  1.2  simonb struct octpow_softc;
     32  1.1  hikaru 
     33  1.2  simonb extern struct octpow_softc	octpow_softc;
     34  1.1  hikaru 
     35  1.2  simonb struct cnmac_softc {
     36  1.1  hikaru 	device_t		sc_dev;
     37  1.1  hikaru 	bus_space_tag_t		sc_regt;
     38  1.1  hikaru 	bus_dma_tag_t		sc_dmat;
     39  1.1  hikaru 
     40  1.4  simonb 	void			*sc_ih;
     41  1.1  hikaru 
     42  1.2  simonb 	struct octpip_softc	*sc_pip;
     43  1.2  simonb 	struct octipd_softc	*sc_ipd;
     44  1.2  simonb 	struct octpko_softc	*sc_pko;
     45  1.2  simonb 	struct octsmi_softc	*sc_smi;
     46  1.2  simonb 	struct octgmx_softc	*sc_gmx;
     47  1.2  simonb 	struct octgmx_port_softc
     48  1.1  hikaru 				*sc_gmx_port;
     49  1.2  simonb 	struct octpow_softc	*sc_pow;
     50  1.1  hikaru 
     51  1.1  hikaru 	struct ethercom		sc_ethercom;
     52  1.1  hikaru 	struct mii_data		sc_mii;
     53  1.1  hikaru 
     54  1.1  hikaru 	void			*sc_sdhook;
     55  1.1  hikaru 
     56  1.1  hikaru 	struct callout		sc_tick_misc_ch;
     57  1.1  hikaru 	struct callout		sc_tick_free_ch;
     58  1.1  hikaru 
     59  1.1  hikaru 	int64_t			sc_soft_req_cnt;
     60  1.1  hikaru 	int64_t			sc_soft_req_thresh;
     61  1.1  hikaru 	int64_t			sc_hard_done_cnt;
     62  1.1  hikaru 	int			sc_flush;
     63  1.1  hikaru 	int			sc_prefetch;
     64  1.1  hikaru 	SIMPLEQ_HEAD(, _send_queue_entry)
     65  1.1  hikaru 				sc_sendq;
     66  1.1  hikaru 	uint64_t		sc_ext_callback_cnt;
     67  1.1  hikaru 
     68  1.1  hikaru 	uint32_t		sc_port;
     69  1.1  hikaru 	uint32_t		sc_port_type;
     70  1.1  hikaru 	uint32_t		sc_init_flag;
     71  1.4  simonb 	int			sc_powgroup;
     72  1.1  hikaru 
     73  1.1  hikaru 	/*
     74  1.1  hikaru 	 * Redirection - received (input) packets are redirected (directly sent)
     75  1.1  hikaru 	 * to another port.  Only meant to test hardware + driver performance.
     76  1.1  hikaru 	 *
     77  1.1  hikaru 	 *  0	- disabled
     78  1.1  hikaru 	 * >0	- redirected to ports that correspond to bits
     79  1.1  hikaru 	 *		0b001 (0x1)	- Port 0
     80  1.1  hikaru 	 *		0b010 (0x2)	- Port 1
     81  1.1  hikaru 	 *		0b100 (0x4)	- Port 2
     82  1.1  hikaru 	 */
     83  1.1  hikaru 	int			sc_redir;
     84  1.1  hikaru 
     85  1.2  simonb 	struct octfau_desc	sc_fau_done;
     86  1.2  simonb 	struct octpko_cmdptr_desc
     87  1.1  hikaru 				sc_cmdptr;
     88  1.1  hikaru 
     89  1.1  hikaru 	size_t			sc_ip_offset;
     90  1.1  hikaru 
     91  1.4  simonb 	struct timeval		sc_rxerr_log_last;
     92  1.4  simonb 
     93  1.1  hikaru 	int			sc_quirks;
     94  1.1  hikaru };
     95