xref: /freebsd/sys/dev/bhnd/bcma/bcma_eromvar.h (revision d8a0fe102c0cfdfcd5b818f850eff09d8536c9bc)
1 /*-
2  * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
3  *
4  * Copyright (c) 2015 Landon Fuller <landon@landonf.org>
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer,
12  *    without modification.
13  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
14  *    similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
15  *    redistribution must be conditioned upon including a substantially
16  *    similar Disclaimer requirement for further binary redistribution.
17  *
18  * NO WARRANTY
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21  * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
22  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
23  * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
24  * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
27  * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
29  * THE POSSIBILITY OF SUCH DAMAGES.
30  *
31  * $FreeBSD$
32  */
33 
34 #ifndef	_BCMA_BCMA_EROMVAR_H_
35 #define	_BCMA_BCMA_EROMVAR_H_
36 
37 #include <dev/bhnd/bhnd.h>
38 #include <dev/bhnd/bhnd_erom.h>
39 
40 #include "bcmavar.h"
41 
42 struct bcma_erom;
43 
44 int	bcma_erom_next_corecfg(struct bcma_erom *sc,
45 	    struct bcma_corecfg **result);
46 
47 /** EROM core descriptor. */
48 struct bcma_erom_core {
49 	uint16_t	vendor;		/**< core's designer */
50 	uint16_t	device;		/**< core's device identifier */
51 	uint16_t	rev;		/**< core's hardware revision */
52 	u_long		num_mport;	/**< number of master port descriptors */
53 	u_long		num_dport;	/**< number of slave port descriptors */
54 	u_long		num_mwrap;	/**< number of master wrapper slave port descriptors */
55 	u_long		num_swrap;	/**< number of slave wrapper slave port descriptors */
56 };
57 
58 /** EROM master port descriptor. */
59 struct bcma_erom_mport {
60 	uint8_t		port_num;	/**< the port number (bus-unique) */
61 	uint8_t		port_vid;	/**< the port VID. A single physical
62 					     master port may have multiple VIDs;
63 					     the canonical port address is
64 					     composed of the port number + the
65 					     port VID */
66 };
67 
68 /** EROM slave port region descriptor. */
69 struct bcma_erom_sport_region {
70 	uint8_t		region_port;	/**< the slave port mapping this region */
71 	uint8_t		region_type;	/**< the mapping port's type */
72 	bhnd_addr_t	base_addr;	/**< region base address */
73 	bhnd_addr_t	size;		/**< region size */
74 };
75 
76 #endif /* _BCMA_BCMA_EROMVAR_H_ */
77