xref: /freebsd/sys/dev/bhnd/bcma/bcma_eromvar.h (revision 2ff63af9b88c7413b7d71715b5532625752a248e)
14ad7e9b0SAdrian Chadd /*-
2*4d846d26SWarner Losh  * SPDX-License-Identifier: BSD-2-Clause
36e778a7eSPedro F. Giffuni  *
44ad7e9b0SAdrian Chadd  * Copyright (c) 2015 Landon Fuller <landon@landonf.org>
54ad7e9b0SAdrian Chadd  * All rights reserved.
64ad7e9b0SAdrian Chadd  *
74ad7e9b0SAdrian Chadd  * Redistribution and use in source and binary forms, with or without
84ad7e9b0SAdrian Chadd  * modification, are permitted provided that the following conditions
94ad7e9b0SAdrian Chadd  * are met:
104ad7e9b0SAdrian Chadd  * 1. Redistributions of source code must retain the above copyright
114ad7e9b0SAdrian Chadd  *    notice, this list of conditions and the following disclaimer,
124ad7e9b0SAdrian Chadd  *    without modification.
134ad7e9b0SAdrian Chadd  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
144ad7e9b0SAdrian Chadd  *    similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
154ad7e9b0SAdrian Chadd  *    redistribution must be conditioned upon including a substantially
164ad7e9b0SAdrian Chadd  *    similar Disclaimer requirement for further binary redistribution.
174ad7e9b0SAdrian Chadd  *
184ad7e9b0SAdrian Chadd  * NO WARRANTY
194ad7e9b0SAdrian Chadd  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
204ad7e9b0SAdrian Chadd  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
214ad7e9b0SAdrian Chadd  * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
224ad7e9b0SAdrian Chadd  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
234ad7e9b0SAdrian Chadd  * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
244ad7e9b0SAdrian Chadd  * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
254ad7e9b0SAdrian Chadd  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
264ad7e9b0SAdrian Chadd  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
274ad7e9b0SAdrian Chadd  * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
284ad7e9b0SAdrian Chadd  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
294ad7e9b0SAdrian Chadd  * THE POSSIBILITY OF SUCH DAMAGES.
304ad7e9b0SAdrian Chadd  *
314ad7e9b0SAdrian Chadd  */
324ad7e9b0SAdrian Chadd 
334ad7e9b0SAdrian Chadd #ifndef	_BCMA_BCMA_EROMVAR_H_
344ad7e9b0SAdrian Chadd #define	_BCMA_BCMA_EROMVAR_H_
354ad7e9b0SAdrian Chadd 
364ad7e9b0SAdrian Chadd #include <dev/bhnd/bhnd.h>
37664a7497SLandon J. Fuller #include <dev/bhnd/bhnd_erom.h>
384ad7e9b0SAdrian Chadd 
394ad7e9b0SAdrian Chadd #include "bcmavar.h"
404ad7e9b0SAdrian Chadd 
41664a7497SLandon J. Fuller struct bcma_erom;
42664a7497SLandon J. Fuller 
43664a7497SLandon J. Fuller int	bcma_erom_next_corecfg(struct bcma_erom *sc,
44664a7497SLandon J. Fuller 	    struct bcma_corecfg **result);
45664a7497SLandon J. Fuller 
464ad7e9b0SAdrian Chadd /** EROM core descriptor. */
474ad7e9b0SAdrian Chadd struct bcma_erom_core {
484ad7e9b0SAdrian Chadd 	uint16_t	vendor;		/**< core's designer */
494ad7e9b0SAdrian Chadd 	uint16_t	device;		/**< core's device identifier */
504ad7e9b0SAdrian Chadd 	uint16_t	rev;		/**< core's hardware revision */
514ad7e9b0SAdrian Chadd 	u_long		num_mport;	/**< number of master port descriptors */
524ad7e9b0SAdrian Chadd 	u_long		num_dport;	/**< number of slave port descriptors */
534ad7e9b0SAdrian Chadd 	u_long		num_mwrap;	/**< number of master wrapper slave port descriptors */
544ad7e9b0SAdrian Chadd 	u_long		num_swrap;	/**< number of slave wrapper slave port descriptors */
554ad7e9b0SAdrian Chadd };
564ad7e9b0SAdrian Chadd 
574ad7e9b0SAdrian Chadd /** EROM master port descriptor. */
584ad7e9b0SAdrian Chadd struct bcma_erom_mport {
594ad7e9b0SAdrian Chadd 	uint8_t		port_num;	/**< the port number (bus-unique) */
604ad7e9b0SAdrian Chadd 	uint8_t		port_vid;	/**< the port VID. A single physical
614ad7e9b0SAdrian Chadd 					     master port may have multiple VIDs;
624ad7e9b0SAdrian Chadd 					     the canonical port address is
634ad7e9b0SAdrian Chadd 					     composed of the port number + the
644ad7e9b0SAdrian Chadd 					     port VID */
654ad7e9b0SAdrian Chadd };
664ad7e9b0SAdrian Chadd 
674ad7e9b0SAdrian Chadd /** EROM slave port region descriptor. */
684ad7e9b0SAdrian Chadd struct bcma_erom_sport_region {
694ad7e9b0SAdrian Chadd 	uint8_t		region_port;	/**< the slave port mapping this region */
704ad7e9b0SAdrian Chadd 	uint8_t		region_type;	/**< the mapping port's type */
714ad7e9b0SAdrian Chadd 	bhnd_addr_t	base_addr;	/**< region base address */
724ad7e9b0SAdrian Chadd 	bhnd_addr_t	size;		/**< region size */
734ad7e9b0SAdrian Chadd };
744ad7e9b0SAdrian Chadd 
754ad7e9b0SAdrian Chadd #endif /* _BCMA_BCMA_EROMVAR_H_ */
76