The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dts/arm/qcom-ipq4019-ethernet.dtsi

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*-
    2  * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
    3  *
    4  * Copyright (c) 2022 Adrian Chadd <adrian@FreeBSD.org>.
    5  *
    6  * Redistribution and use in source and binary forms, with or without
    7  * modification, are permitted provided that the following conditions
    8  * are met:
    9  * 1. Redistributions of source code must retain the above copyright
   10  *    notice, this list of conditions and the following disclaimer.
   11  * 2. Redistributions in binary form must reproduce the above copyright
   12  *    notice, this list of conditions and the following disclaimer in the
   13  *    documentation and/or other materials provided with the distribution.
   14  *
   15  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   16  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   17  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   18  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   19  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   20  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   21  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   22  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   23  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   24  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   25  * SUCH DAMAGE.
   26  */
   27 
   28 #include <dt-bindings/net/qcom-qca807x.h>
   29 
   30 / {
   31         soc {
   32                 mdio: mdio@90000 {
   33                         #address-cells = <1>;
   34                         #size-cells = <0>;
   35                         compatible = "qcom,ipq4019-mdio";
   36                         reg = <0x90000 0x64>;
   37                         status = "disabled";
   38                 };
   39 
   40                 ess-switch@c000000 {
   41                         compatible = "qcom,ess-switch";
   42                         reg = <0xc000000 0x80000>;
   43                         resets = <&gcc ESS_RESET>;
   44                         reset-names = "ess_rst";
   45                         clocks = <&gcc GCC_ESS_CLK>;
   46                         clock-names = "ess_clk";
   47 
   48                         /*
   49                          * The port bitmap describing which ports are CPU
   50                          * facing.  It's almost always going to be port 0
   51                          * (ie bit 0.)
   52                          */
   53                         switch_cpu_bmp = <0x1>;
   54 
   55                         /*
   56                          * The port bitmap describing which ports are in
   57                          * the LAN group.  This defaults to VLAN 1 in the
   58                          * switch driver.
   59                          */
   60                         switch_lan_bmp = <0x1e>;
   61 
   62                         /*
   63                          * The port bitmap describing which ports are
   64                          * in the WAN group.  This defaults to VLAN 2
   65                          * in the switch driver.
   66                          */
   67                         switch_wan_bmp = <0x20>;
   68 
   69                         /*
   70                          * Which interface to use to talk to an external
   71                          * PHY.  In this instance we default to
   72                          * PORT_WRAPPER_PSGMII as we're defaulting to
   73                          * a PSGMII (well, Qualcomm SGMII) facing a 5
   74                          * port Malibu PHY.
   75                          */
   76                         switch_mac_mode = <0>;
   77                         status = "disabled";
   78                 };
   79 
   80                 ess-psgmii@98000 {
   81                         compatible = "qcom,ess-psgmii";
   82                         reg = <0x98000 0x800>;
   83                         status = "disabled";
   84                 };
   85 
   86                 edma@c080000 {
   87                         compatible = "qcom,ess-edma";
   88                         reg = <0xc080000 0x8000>;
   89 
   90                         /*
   91                          * This is a hold-over from the Qualcomm Linux driver
   92                          * and controls whether to allocate a full PAGE_SIZE
   93                          * page entry per RX buffer or not.
   94                          *
   95                          * For now it's parsed but ignored by FreeBSD.
   96                          */
   97                         qcom,page-mode = <0>;
   98 
   99                         /*
  100                          * This sets the size of the RX head buffer.
  101                          *
  102                          * If qcom,page_mode is set to 1 then this is ignored.
  103                          *
  104                          * Again, this is currently parsed but ignored by
  105                          * FreeBSD.
  106                          */
  107                         qcom,rx_head_buf_size = <1540>;
  108 
  109                         /*
  110                          * These two fields control whether the GMAC driver
  111                          * should be polling the MDIO bus to determine if
  112                          * a gmac interface should be considered link
  113                          * up or down.
  114                          *
  115                          * It currently isn't supported by FreeBSD.
  116                          */
  117                         qcom,mdio_supported;
  118                         qcom,poll_required = <1>;
  119 
  120                         /*
  121                          * How many virtual ethernet interfaces to create.
  122                          * The interfaces are created based on a port bitmap
  123                          * and default VLAN ID.
  124                          *
  125                          * These would do well to map to the default lan/wan
  126                          * bit map fields in the ESS switch configuration
  127                          * above.
  128                          */
  129                         qcom,num_gmac = <2>;
  130 
  131                         /*
  132                          * Support up to 16 TX and 16 RX interrupts.
  133                          * For now the hardware only uses 16 TX and 8
  134                          * RX interrupts/queues, but for some reason
  135                          * they're all allocated just in case.
  136                          */
  137                         interrupts = <0  65 IRQ_TYPE_EDGE_RISING
  138                                       0  66 IRQ_TYPE_EDGE_RISING
  139                                       0  67 IRQ_TYPE_EDGE_RISING
  140                                       0  68 IRQ_TYPE_EDGE_RISING
  141                                       0  69 IRQ_TYPE_EDGE_RISING
  142                                       0  70 IRQ_TYPE_EDGE_RISING
  143                                       0  71 IRQ_TYPE_EDGE_RISING
  144                                       0  72 IRQ_TYPE_EDGE_RISING
  145                                       0  73 IRQ_TYPE_EDGE_RISING
  146                                       0  74 IRQ_TYPE_EDGE_RISING
  147                                       0  75 IRQ_TYPE_EDGE_RISING
  148                                       0  76 IRQ_TYPE_EDGE_RISING
  149                                       0  77 IRQ_TYPE_EDGE_RISING
  150                                       0  78 IRQ_TYPE_EDGE_RISING
  151                                       0  79 IRQ_TYPE_EDGE_RISING
  152                                       0  80 IRQ_TYPE_EDGE_RISING
  153                                       0 240 IRQ_TYPE_EDGE_RISING
  154                                       0 241 IRQ_TYPE_EDGE_RISING
  155                                       0 242 IRQ_TYPE_EDGE_RISING
  156                                       0 243 IRQ_TYPE_EDGE_RISING
  157                                       0 244 IRQ_TYPE_EDGE_RISING
  158                                       0 245 IRQ_TYPE_EDGE_RISING
  159                                       0 246 IRQ_TYPE_EDGE_RISING
  160                                       0 247 IRQ_TYPE_EDGE_RISING
  161                                       0 248 IRQ_TYPE_EDGE_RISING
  162                                       0 249 IRQ_TYPE_EDGE_RISING
  163                                       0 250 IRQ_TYPE_EDGE_RISING
  164                                       0 251 IRQ_TYPE_EDGE_RISING
  165                                       0 252 IRQ_TYPE_EDGE_RISING
  166                                       0 253 IRQ_TYPE_EDGE_RISING
  167                                       0 254 IRQ_TYPE_EDGE_RISING
  168                                       0 255 IRQ_TYPE_EDGE_RISING>;
  169 
  170                         status = "disabled";
  171 
  172                         /*
  173                          * This is the LAN gmac interface.
  174                          */
  175                         gmac0: gmac0 {
  176                                 /*
  177                                  * Default to an all-zero MAC address for
  178                                  * this interface.  Ideally bootloaders will
  179                                  * override this in a DTS overlay but that
  180                                  * doesn't happen all that often.
  181                                  *
  182                                  * If the driver finds an all-zero MAC address
  183                                  * and no platform hint / routine for fetching
  184                                  * it from flash it will simply choose a
  185                                  * random MAC address.
  186                                  *
  187                                  * Note this isn't programmed into the
  188                                  * hardware!  The ethernet switch filters what
  189                                  * is visible to the ethernet MAC through
  190                                  * normal ethernet switch MAC address learning
  191                                  * rules.
  192                                  */
  193                                 local-mac-address = [00 00 00 00 00 00];
  194 
  195                                 /*
  196                                  * The VLAN tag and port map.  Yes, they used
  197                                  * the same entry for both fields.  The first
  198                                  * integer is the default VLAN ID, and second
  199                                  * field is the port map.
  200                                  *
  201                                  * When 802.1q VLANs are not used the switch
  202                                  * will simply use the portmap to limit which
  203                                  * ports can transmit the frames.  It's used
  204                                  * for sending broadcast/multicast or flooded
  205                                  * traffic.
  206                                  *
  207                                  * When 802.1q VLANs are used then it's both
  208                                  * the portmap and the 802.1q tag port
  209                                  * membership that define which ports can
  210                                  * be flooded as above.
  211                                  */
  212                                 vlan_tag = <1 0x1f>;
  213                         };
  214 
  215                         /*
  216                          * This is the WAN gmac interface.
  217                          */
  218                         gmac1: gmac1 {
  219                                 local-mac-address = [00 00 00 00 00 00];
  220 
  221                                 /*
  222                                  * Whether to poll the MDIO port / PHY for
  223                                  * link status or not.
  224                                  *
  225                                  * This is how the interface would get a
  226                                  * logical link status for WAN events to tie
  227                                  * things like dhclient to.
  228                                  *
  229                                  * For now it's unsupported in FreeBSD.
  230                                  */
  231                                 qcom,phy_mdio_addr = <4>;
  232                                 qcom,poll_required = <1>;
  233 
  234                                 vlan_tag = <2 0x20>;
  235                         };
  236                 };
  237         };
  238 };

Cache object: 3310484e4251056e921268e4d4908165


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.