xref: /freebsd/sys/dev/bhnd/bcma/bcma_eromvar.h (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
1 /*-
2  * SPDX-License-Identifier: BSD-2-Clause
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  */
32 
33 #ifndef	_BCMA_BCMA_EROMVAR_H_
34 #define	_BCMA_BCMA_EROMVAR_H_
35 
36 #include <dev/bhnd/bhnd.h>
37 #include <dev/bhnd/bhnd_erom.h>
38 
39 #include "bcmavar.h"
40 
41 struct bcma_erom;
42 
43 int	bcma_erom_next_corecfg(struct bcma_erom *sc,
44 	    struct bcma_corecfg **result);
45 
46 /** EROM core descriptor. */
47 struct bcma_erom_core {
48 	uint16_t	vendor;		/**< core's designer */
49 	uint16_t	device;		/**< core's device identifier */
50 	uint16_t	rev;		/**< core's hardware revision */
51 	u_long		num_mport;	/**< number of master port descriptors */
52 	u_long		num_dport;	/**< number of slave port descriptors */
53 	u_long		num_mwrap;	/**< number of master wrapper slave port descriptors */
54 	u_long		num_swrap;	/**< number of slave wrapper slave port descriptors */
55 };
56 
57 /** EROM master port descriptor. */
58 struct bcma_erom_mport {
59 	uint8_t		port_num;	/**< the port number (bus-unique) */
60 	uint8_t		port_vid;	/**< the port VID. A single physical
61 					     master port may have multiple VIDs;
62 					     the canonical port address is
63 					     composed of the port number + the
64 					     port VID */
65 };
66 
67 /** EROM slave port region descriptor. */
68 struct bcma_erom_sport_region {
69 	uint8_t		region_port;	/**< the slave port mapping this region */
70 	uint8_t		region_type;	/**< the mapping port's type */
71 	bhnd_addr_t	base_addr;	/**< region base address */
72 	bhnd_addr_t	size;		/**< region size */
73 };
74 
75 #endif /* _BCMA_BCMA_EROMVAR_H_ */
76