]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/dev/bhnd/bcma/bcma_eromvar.h
Merge lldb trunk r321017 to contrib/llvm/tools/lldb.
[FreeBSD/FreeBSD.git] / sys / dev / bhnd / bcma / bcma_eromvar.h
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_ */