bcmdefs.h revision ac2bc7e7aaad957f235992ff74d5f9af34dc5f88
1b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt/*
2b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt * Misc system wide definitions
3b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt *
4ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt * Copyright (C) 1999-2012, Broadcom Corporation
56dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt *
66dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * Permission to use, copy, modify, and/or distribute this software for any
76dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * purpose with or without fee is hereby granted, provided that the above
86dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * copyright notice and this permission notice appear in all copies.
96dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt *
106dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
116dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
126dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
136dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
146dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
156dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
166dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt *
18ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt * $Id: bcmdefs.h 316830 2012-02-23 20:29:22Z $
19b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt */
20b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
21b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#ifndef	_bcmdefs_h_
22b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define	_bcmdefs_h_
23b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
24b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
25b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
26ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt
27ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define BCM_REFERENCE(data)	((void)(data))
28ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt
29ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt
30ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define STATIC_ASSERT(expr) { \
31ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt	 \
32ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt	typedef enum { _STATIC_ASSERT_NOT_CONSTANT = (expr) } _static_assert_e; \
33ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt	 \
34ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt	typedef char STATIC_ASSERT_FAIL[(expr) ? 1 : -1]; \
35ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt}
36ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt
37ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt
38b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define bcmreclaimed 		0
39b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define _data	_data
40b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define _fn	_fn
41ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define BCMPREATTACHDATA(_data)	_data
42ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define BCMPREATTACHFN(_fn)	_fn
43b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define _data	_data
44b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define _fn		_fn
45b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define _fn	_fn
46ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define	BCMNMIATTACHFN(_fn)	_fn
47ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define	BCMNMIATTACHDATA(_data)	_data
48b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define CONST	const
49ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#ifndef BCMFASTPATH
50b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define BCMFASTPATH
51ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define BCMFASTPATH_HOST
52ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#endif
53b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
54b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
55b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
56b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define _data	_data
57ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define BCMROMDAT_NAME(_data)	_data
58b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define _fn		_fn
59b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define _fn	_fn
60b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define STATIC	static
61ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define BCMROMDAT_ARYSIZ(data)	ARRAYSIZE(data)
62ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define BCMROMDAT_SIZEOF(data)	sizeof(data)
63ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define BCMROMDAT_APATCH(data)
64ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define BCMROMDAT_SPATCH(data)
65b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
66b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
676dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define	SI_BUS			0
686dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define	PCI_BUS			1
696dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define	PCMCIA_BUS		2
706dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define SDIO_BUS		3
716dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define JTAG_BUS		4
726dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define USB_BUS			5
736dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define SPI_BUS			6
746dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define RPC_BUS			7
75b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
76b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
77b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#ifdef BCMBUSTYPE
78b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define BUSTYPE(bus) 	(BCMBUSTYPE)
79b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#else
80b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define BUSTYPE(bus) 	(bus)
81b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#endif
82b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
83b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
84b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#ifdef BCMCHIPTYPE
85b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define CHIPTYPE(bus) 	(BCMCHIPTYPE)
86b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#else
87b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define CHIPTYPE(bus) 	(bus)
88b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#endif
89b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
90b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
91b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
92b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#if defined(BCMSPROMBUS)
93b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define SPROMBUS	(BCMSPROMBUS)
94b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#elif defined(SI_PCMCIA_SROM)
95b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define SPROMBUS	(PCMCIA_BUS)
96b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#else
97b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define SPROMBUS	(PCI_BUS)
98b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#endif
99b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
100b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
101b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#ifdef BCMCHIPID
102b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define CHIPID(chip)	(BCMCHIPID)
103b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#else
104b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define CHIPID(chip)	(chip)
105b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#endif
106b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
107b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#ifdef BCMCHIPREV
108b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define CHIPREV(rev)	(BCMCHIPREV)
109b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#else
110b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define CHIPREV(rev)	(rev)
111b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#endif
112b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
113b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
1146dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define DMADDR_MASK_32 0x0
1156dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define DMADDR_MASK_30 0xc0000000
1166dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define DMADDR_MASK_0  0xffffffff
117b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
1186dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define	DMADDRWIDTH_30  30
1196dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define	DMADDRWIDTH_32  32
1206dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define	DMADDRWIDTH_63  63
1216dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define	DMADDRWIDTH_64  64
122b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
123b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#ifdef BCMDMA64OSL
124b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidttypedef struct {
125b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt	uint32 loaddr;
126b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt	uint32 hiaddr;
127b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt} dma64addr_t;
128b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
129b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidttypedef dma64addr_t dmaaddr_t;
130b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define PHYSADDRHI(_pa) ((_pa).hiaddr)
131b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define PHYSADDRHISET(_pa, _val) \
132b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt	do { \
133b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt		(_pa).hiaddr = (_val);		\
134b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt	} while (0)
135b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define PHYSADDRLO(_pa) ((_pa).loaddr)
136b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define PHYSADDRLOSET(_pa, _val) \
137b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt	do { \
138b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt		(_pa).loaddr = (_val);		\
139b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt	} while (0)
140b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
141b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#else
142b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidttypedef unsigned long dmaaddr_t;
143b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define PHYSADDRHI(_pa) (0)
144b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define PHYSADDRHISET(_pa, _val)
145b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define PHYSADDRLO(_pa) ((_pa))
146b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define PHYSADDRLOSET(_pa, _val) \
147b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt	do { \
148b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt		(_pa) = (_val);			\
149b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt	} while (0)
1506dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#endif
151b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
152b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
153b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidttypedef struct  {
154b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt	dmaaddr_t addr;
155b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt	uint32	  length;
156b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt} hnddma_seg_t;
157b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
158b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define MAX_DMA_SEGS 4
159b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
160b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
161b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidttypedef struct {
1626dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt	void *oshdmah;
1636dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt	uint origsize;
164b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt	uint nsegs;
165b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt	hnddma_seg_t segs[MAX_DMA_SEGS];
166b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt} hnddma_seg_map_t;
167b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
168b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
169b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
170b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
171b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#if defined(BCM_RPC_NOCOPY) || defined(BCM_RCP_TXNOCOPY)
172b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
173b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define BCMEXTRAHDROOM 220
174b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#else
175b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define BCMEXTRAHDROOM 172
176b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#endif
177b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
178b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
179ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#ifndef SDALIGN
180ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define SDALIGN	32
181ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#endif
182ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt
183ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt
184b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define BCMDONGLEHDRSZ 12
185b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define BCMDONGLEPADSZ 16
186b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
187b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define BCMDONGLEOVERHEAD	(BCMDONGLEHDRSZ + BCMDONGLEPADSZ)
188b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
189b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
190ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#if defined(NO_BCMDBG_ASSERT)
191ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt# undef BCMDBG_ASSERT
192ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt# undef BCMASSERT_LOG
193ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#endif
194ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt
195b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#if defined(BCMASSERT_LOG)
196b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define BCMASSERT_SUPPORT
1976dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#endif
198b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
199b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
200b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define BITFIELD_MASK(width) \
201b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt		(((unsigned)1 << (width)) - 1)
202b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define GFIELD(val, field) \
203b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt		(((val) >> field ## _S) & field ## _M)
204b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define SFIELD(val, field, bits) \
205b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt		(((val) & (~(field ## _M << field ## _S))) | \
206b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt		 ((unsigned)(bits) << field ## _S))
207b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
208b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
209b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#ifdef BCMSMALL
210b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#undef	BCMSPACE
2116dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define bcmspace	FALSE
212b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#else
213b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define	BCMSPACE
2146dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#define bcmspace	TRUE
215b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#endif
216b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
217b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
218b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt#define	MAXSZ_NVRAM_VARS	4096
219b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
220b6825ab724b9d671db9f26faae035f2d5ade04b6Dmitry Shmidt
221ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#ifdef DL_NVRAM
222ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define NVRAM_ARRAY_MAXSIZE	DL_NVRAM
223ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#else
224ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#define NVRAM_ARRAY_MAXSIZE	MAXSZ_NVRAM_VARS
225ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#endif
226ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt
227ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#ifdef BCMUSBDEV_ENABLED
228ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidtextern uint32 gFWID;
2296dbcf2181152a81ab5f3bc5fa765288341a1b7abDmitry Shmidt#endif
230ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt
231ac2bc7e7aaad957f235992ff74d5f9af34dc5f88Dmitry Shmidt#endif
232