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/contrib/device-tree/src/arm/aspeed-bmc-tyan-s7106.dts

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 // SPDX-License-Identifier: GPL-2.0+
    2 /dts-v1/;
    3 
    4 #include "aspeed-g5.dtsi"
    5 #include <dt-bindings/gpio/aspeed-gpio.h>
    6 #include <dt-bindings/interrupt-controller/irq.h>
    7 
    8 / {
    9         model = "Tyan S7106 BMC";
   10         compatible = "tyan,s7106-bmc", "aspeed,ast2500";
   11 
   12         chosen {
   13                 stdout-path = &uart5;
   14                 bootargs = "console=ttyS4,115200 earlycon";
   15         };
   16 
   17         memory@80000000 {
   18                 device_type = "memory";
   19                 reg = <0x80000000 0x20000000>;
   20         };
   21 
   22         reserved-memory {
   23                 #address-cells = <1>;
   24                 #size-cells = <1>;
   25                 ranges;
   26 
   27                 p2a_memory: region@987f0000 {
   28                         no-map;
   29                         reg = <0x987f0000 0x00010000>; /* 64KB */
   30                 };
   31 
   32                 vga_memory: framebuffer@9f000000 {
   33                         no-map;
   34                         reg = <0x9f000000 0x01000000>; /* 16M */
   35                 };
   36 
   37                 gfx_memory: framebuffer {
   38                         size = <0x01000000>; /* 16M */
   39                         alignment = <0x01000000>;
   40                         compatible = "shared-dma-pool";
   41                         reusable;
   42                 };
   43         };
   44 
   45         leds {
   46                 compatible = "gpio-leds";
   47 
   48                 identify {
   49                         gpios = <&gpio ASPEED_GPIO(A, 2) GPIO_ACTIVE_LOW>;
   50                 };
   51 
   52                 heartbeat {
   53                         gpios = <&gpio ASPEED_GPIO(E, 7) GPIO_ACTIVE_LOW>;
   54                 };
   55         };
   56 
   57         iio-hwmon {
   58                 compatible = "iio-hwmon";
   59                 io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>,
   60                         <&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>,
   61                         <&adc 8>, <&adc 9>, <&adc 10>, <&adc 11>,
   62                         <&adc 12>, <&adc 13>, <&adc 14>;
   63         };
   64 
   65         iio-hwmon-battery {
   66                 compatible = "iio-hwmon";
   67                 io-channels = <&adc 15>;
   68         };
   69 };
   70 
   71 &fmc {
   72         status = "okay";
   73         flash@0 {
   74                 label = "bmc";
   75                 status = "okay";
   76                 m25p,fast-read;
   77 #include "openbmc-flash-layout.dtsi"
   78         };
   79 };
   80 
   81 &spi1 {
   82         status = "okay";
   83         pinctrl-names = "default";
   84         pinctrl-0 = <&pinctrl_spi1_default>;
   85 
   86         flash@0 {
   87                 status = "okay";
   88                 label = "pnor";
   89                 m25p,fast-read;
   90         };
   91 };
   92 
   93 &uart1 {
   94         /* Rear RS-232 connector */
   95         status = "okay";
   96         pinctrl-names = "default";
   97         pinctrl-0 = <&pinctrl_txd1_default
   98                         &pinctrl_rxd1_default>;
   99 };
  100 
  101 &uart2 {
  102         /* RS-232 connector on header */
  103         status = "okay";
  104         pinctrl-names = "default";
  105         pinctrl-0 = <&pinctrl_txd2_default
  106                         &pinctrl_rxd2_default>;
  107 };
  108 
  109 &uart3 {
  110         /* Alternative to vuart to internally connect (route) to uart1
  111          * when vuart cannot be used due to BIOS limitations.
  112          */
  113         status = "okay";
  114 };
  115 
  116 &uart4 {
  117         /* Alternative to vuart to internally connect (route) to the
  118          * external port usually used by uart1 when vuart cannot be
  119          * used due to BIOS limitations.
  120          */
  121         status = "okay";
  122 };
  123 
  124 &uart5 {
  125         /* BMC "debug" (console) UART; connected to RS-232 connector
  126          * on header; selectable via jumpers as alternative to uart2
  127          */
  128         status = "okay";
  129 };
  130 
  131 &uart_routing {
  132         status = "okay";
  133 };
  134 
  135 &vuart {
  136         status = "okay";
  137 
  138         /* We enable the VUART here, but leave it in a state that does
  139          * not interfere with the SuperIO. The goal is to have both the
  140          * VUART and the SuperIO available and decide at runtime whether
  141          * the VUART should actually be used. For that reason, configure
  142          * an "invalid" IO address and an IRQ that is not used by the
  143          * BMC.
  144          */
  145 
  146         aspeed,lpc-io-reg = <0xffff>;
  147         aspeed,lpc-interrupts = <15 IRQ_TYPE_LEVEL_HIGH>;
  148 };
  149 
  150 &lpc_ctrl {
  151         status = "okay";
  152 };
  153 
  154 &p2a {
  155         status = "okay";
  156         memory-region = <&p2a_memory>;
  157 };
  158 
  159 &lpc_snoop {
  160         status = "okay";
  161         snoop-ports = <0x80>;
  162 };
  163 
  164 &adc {
  165         status = "okay";
  166 };
  167 
  168 &vhub {
  169         status = "okay";
  170 };
  171 
  172 &pwm_tacho {
  173         status = "okay";
  174         pinctrl-names = "default";
  175         pinctrl-0 = <&pinctrl_pwm0_default
  176                         &pinctrl_pwm1_default
  177                         &pinctrl_pwm3_default
  178                         &pinctrl_pwm4_default>;
  179 
  180         /* CPU fan #0 */
  181         fan@0 {
  182                 reg = <0x00>;
  183                 aspeed,fan-tach-ch = /bits/ 8 <0x00>;
  184         };
  185 
  186         /* CPU fan #1 */
  187         fan@1 {
  188                 reg = <0x01>;
  189                 aspeed,fan-tach-ch = /bits/ 8 <0x01>;
  190         };
  191 
  192         /* PWM group for chassis fans #1, #2, #3 and #4  */
  193         fan@2 {
  194                 reg = <0x03>;
  195                 aspeed,fan-tach-ch = /bits/ 8 <0x02>;
  196         };
  197 
  198         fan@3 {
  199                 reg = <0x03>;
  200                 aspeed,fan-tach-ch = /bits/ 8 <0x03>;
  201         };
  202 
  203         fan@4 {
  204                 reg = <0x03>;
  205                 aspeed,fan-tach-ch = /bits/ 8 <0x04>;
  206         };
  207 
  208         fan@5 {
  209                 reg = <0x03>;
  210                 aspeed,fan-tach-ch = /bits/ 8 <0x05>;
  211         };
  212 
  213         /* PWM group for chassis fans #5 and #6  */
  214         fan@6 {
  215                 reg = <0x04>;
  216                 aspeed,fan-tach-ch = /bits/ 8 <0x06>;
  217         };
  218 
  219         fan@7 {
  220                 reg = <0x04>;
  221                 aspeed,fan-tach-ch = /bits/ 8 <0x07>;
  222         };
  223 };
  224 
  225 &i2c0 {
  226         status = "okay";
  227 
  228         /* Hardware monitor with temperature sensors */
  229         nct7802@28 {
  230                 compatible = "nuvoton,nct7802";
  231                 reg = <0x28>;
  232 
  233                 #address-cells = <1>;
  234                 #size-cells = <0>;
  235 
  236                 channel@0 { /* LTD */
  237                         reg = <0>;
  238                 };
  239 
  240                 channel@1 { /* RTD1 */
  241                         reg = <1>;
  242                         sensor-type = "temperature";
  243                         temperature-mode = "thermistor";
  244                 };
  245 
  246                 channel@2 { /* RTD2 */
  247                         reg = <2>;
  248                         sensor-type = "temperature";
  249                         temperature-mode = "thermistor";
  250                 };
  251 
  252                 channel@3 { /* RTD3 */
  253                         reg = <3>;
  254                         sensor-type = "temperature";
  255                 };
  256         };
  257 
  258         /* Also connected to:
  259          * - IPMB pin header
  260          * - CPU #0 memory error LED @ 0x3A
  261          * - CPU #1 memory error LED @ 0x3C
  262          */
  263 };
  264 
  265 &i2c1 {
  266         /* Directly connected to PCH SMBUS #0 */
  267         status = "okay";
  268 };
  269 
  270 &i2c2 {
  271         status = "okay";
  272 
  273         /* BMC EEPROM, incl. mainboard FRU */
  274         eeprom@50 {
  275                 compatible = "atmel,24c256";
  276                 reg = <0x50>;
  277         };
  278 
  279         /* Also connected to:
  280          * - fan header
  281          * - mini-SAS HD connector
  282          * - SSATA SGPIO
  283          * - via switch (BMC_SMB3_PCH_IE_SML3_EN, active low)
  284          *   to PCH SMBUS #3
  285          */
  286 };
  287 
  288 &i2c3 {
  289         status = "okay";
  290 
  291         /* PSU1 FRU @ 0xA0 */
  292         eeprom@50 {
  293                 compatible = "atmel,24c02";
  294                 reg = <0x50>;
  295         };
  296 
  297         /* PSU2 FRU @ 0xA2 */
  298         eeprom@51 {
  299                 compatible = "atmel,24c02";
  300                 reg = <0x51>;
  301         };
  302 
  303         /* PSU1 @ 0xB0 */
  304         power-supply@58 {
  305                 compatible = "pmbus";
  306                 reg = <0x58>;
  307         };
  308 
  309         /* PSU2 @ 0xB2 */
  310         power-supply@59 {
  311                 compatible = "pmbus";
  312                 reg = <0x59>;
  313         };
  314 
  315         /* Also connected to:
  316          * - PCH SMBUS #1
  317          */
  318 };
  319 
  320 &i2c4 {
  321         status = "okay";
  322 
  323         /* Connected to:
  324          * - PCH SMBUS #2
  325          */
  326 
  327         /* Connected via switch to:
  328          * - CPU #0 channels ABC VDDQ @ 0x80
  329          * - CPU #0 channels DEF VDDQ @ 0x81
  330          * - CPU #1 channels ABC VDDQ @ 0x82
  331          * - CPU #1 channels DEF VDDQ @ 0x83
  332          * - CPU #0 VCCIO & VMCP @ 0x52
  333          * - CPU #1 VCCIO & VMCP @ 0x53
  334          * - CPU #0 VCCIN @ 0xC0
  335          * - CPU #0 VSA @ 0xC2
  336          * - CPU #1 VCCIN @ 0xC4
  337          * - CPU #1 VSA @ 0xC6
  338          * - J110
  339          */
  340 };
  341 
  342 &i2c5 {
  343         status = "okay";
  344 
  345         /* Connected via switch (PCH_BMC_SMB_SW_P) to:
  346          * - mainboard FRU @ 0xAE
  347          * - XDP connector
  348          * - ME debug header
  349          * - clock buffer @ 0xD8
  350          * - i2c4 via switch (PCH_VR_SMBUS_SW_P; controlled by PCH)
  351          * - PCH SMBUS
  352          */
  353 };
  354 
  355 &i2c6 {
  356         status = "okay";
  357 
  358         /* Connected via switch (BMC_PE_SMB_EN_1_N) to
  359          * bus mux (selector BMC_PE_SMB_SW_BIT[1..0]) to:
  360          * - 0,0: PCIE slot 1, SMB #1
  361          * - 0,1: PCIE slot 1, SMB #2
  362          * - 1,0: PCIE slot 2, SMB #1
  363          * - 1,1: PCIE slot 2, SMB #2
  364          */
  365 
  366         /* Connected via switch (BMC_PE_SMB_EN_2_N) to
  367          * bus mux (selector BMC_PE_SMB_SW_BIT[1..0]) to:
  368          * - 0,0: OCP0 (A) SMB
  369          * - 0,1: OCP0 (C) SMB
  370          * - 1,0: OCP1 (A) SMB
  371          * - 1,1: NC
  372          */
  373 };
  374 
  375 &i2c7 {
  376         status = "okay";
  377 
  378         /* Connected to:
  379          * - PCH SMBUS #4
  380          */
  381 };
  382 
  383 &i2c8 {
  384         status = "okay";
  385 
  386         /* Not connected */
  387 };
  388 
  389 &mac0 {
  390         status = "okay";
  391         use-ncsi;
  392         pinctrl-names = "default";
  393         pinctrl-0 = <&pinctrl_rmii1_default>;
  394 };
  395 
  396 &mac1 {
  397         status = "okay";
  398         pinctrl-names = "default";
  399         pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>;
  400 };
  401 
  402 &ibt {
  403         status = "okay";
  404 };
  405 
  406 &kcs1 {
  407         status = "okay";
  408         aspeed,lpc-io-reg = <0xca8>;
  409 };
  410 
  411 &kcs3 {
  412         status = "okay";
  413         aspeed,lpc-io-reg = <0xca2>;
  414 };
  415 
  416 /* Enable BMC VGA output to show an early (pre-BIOS) boot screen */
  417 &gfx {
  418         status = "okay";
  419         memory-region = <&gfx_memory>;
  420 };
  421 
  422 /* We're following the GPIO naming as defined at
  423  * https://github.com/openbmc/docs/blob/master/designs/device-tree-gpio-naming.md.
  424  *
  425  * Notes on led-identify and id-button:
  426  * - A physical button is connected to id-button which
  427  *   triggers the clock on a D flip-flop. The /Q output of the
  428  *   flip-flop drives its D input.
  429  * - The flip-flop's Q output drives led-identify which is
  430  *   connected to LEDs.
  431  * - With that, every button press toggles the LED between on and off.
  432  *
  433  * Notes on power-, reset- and nmi- button and control:
  434  * - The -button signals can be used to monitor physical buttons.
  435  * - The -control signals can be used to actuate the specific
  436  *   operation.
  437  * - In hardware, the -button signals are connected to the -control
  438  *   signals through drivers with the -control signals being
  439  *   protected through diodes.
  440  */
  441 &gpio {
  442         status = "okay";
  443         gpio-line-names =
  444         /*A0*/          "",
  445         /*A1*/          "",
  446         /*A2*/          "led-identify", /* in/out: BMC_IDLED_ON_N */
  447         /*A3*/          "",
  448         /*A4*/          "",
  449         /*A5*/          "",
  450         /*A6*/          "",
  451         /*A7*/          "",
  452         /*B0-B7*/       "","","","","","","","",
  453         /*C0*/          "",
  454         /*C1*/          "",
  455         /*C2*/          "",
  456         /*C3*/          "",
  457         /*C4*/          "id-button", /* in/out: BMC_IDBTN_IN_OUT_N */
  458         /*C5*/          "post-complete", /* in: FM_BIOS_POST_CMPLT_N */
  459         /*C6*/          "",
  460         /*C7*/          "",
  461         /*D0*/          "",
  462         /*D1*/          "",
  463         /*D2*/          "power-chassis-good", /* in: SYS_PWROK_BUF */
  464         /*D3*/          "platform-reset", /* in: SYS_PLTRST_N */
  465         /*D4*/          "",
  466         /*D5*/          "",
  467         /*D6*/          "",
  468         /*D7*/          "",
  469         /*E0*/          "power-button", /* in: BMC_PWBTN_IN_N */
  470         /*E1*/          "power-chassis-control", /* out: BMC_PWRBTN_OUT_N */
  471         /*E2*/          "reset-button", /* in: BMC_RSTBTN_IN_N */
  472         /*E3*/          "reset-control", /* out: BMC_RSTBTN_OUT_N */
  473         /*E4*/          "nmi-button", /* in: BMC_NMIBTN_IN_N */
  474         /*E5*/          "nmi-control", /* out: BMC_NMIBTN_OUT_N */
  475         /*E6*/          "",
  476         /*E7*/          "led-heartbeat", /* out: BMC_HEARTBRAT_LED_N */
  477         /*F0*/          "",
  478         /*F1*/          "clear-cmos-control", /* out: BMC_CLR_CMOS_N */
  479         /*F2*/          "",
  480         /*F3*/          "",
  481         /*F4*/          "led-fault", /* out: AST_HW_FAULT_N */
  482         /*F5*/          "",
  483         /*F6*/          "",
  484         /*F7*/          "",
  485         /*G0*/          "BMC_PE_SMB_EN_1_N", /* out */
  486         /*G1*/          "BMC_PE_SMB_EN_2_N", /* out */
  487         /*G2*/          "",
  488         /*G3*/          "",
  489         /*G4*/          "",
  490         /*G5*/          "",
  491         /*G6*/          "",
  492         /*G7*/          "",
  493         /*H0-H7*/       "","","","","","","","",
  494         /*I0-I7*/       "","","","","","","","",
  495         /*J0-J7*/       "","","","","","","","",
  496         /*K0-K7*/       "","","","","","","","",
  497         /*L0-L7*/       "","","","","","","","",
  498         /*M0-M7*/       "","","","","","","","",
  499         /*N0-N7*/       "","","","","","","","",
  500         /*O0-O7*/       "","","","","","","","",
  501         /*P0-P7*/       "","","","","","","","",
  502         /*Q0*/          "",
  503         /*Q1*/          "",
  504         /*Q2*/          "",
  505         /*Q3*/          "",
  506         /*Q4*/          "BMC_PE_SMB_SW_BIT0", /* out */
  507         /*Q5*/          "BMC_PE_SMB_SW_BIT1", /* out */
  508         /*Q6*/          "",
  509         /*Q7*/          "",
  510         /*R0-R7*/       "","","","","","","","",
  511         /*S0-S7*/       "","","","","","","","",
  512         /*T0-T7*/       "","","","","","","","",
  513         /*U0-U7*/       "","","","","","","","",
  514         /*V0-V7*/       "","","","","","","","",
  515         /*W0-W7*/       "","","","","","","","",
  516         /*X0-X7*/       "","","","","","","","",
  517         /*Y0-Y7*/       "","","","","","","","",
  518         /*Z0-Z7*/       "","","","","","","","",
  519         /*AA0*/         "",
  520         /*AA1*/         "",
  521         /*AA2*/         "",
  522         /*AA3*/         "BMC_SMB3_PCH_IE_SML3_EN", /* out */
  523         /*AA4*/         "",
  524         /*AA5*/         "",
  525         /*AA6*/         "",
  526         /*AA7*/         "",
  527         /*AB0-AB7*/     "","","","","","","","";
  528 };

Cache object: 4a0982155ab77b942ce7b00ffd9627ab


[ 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.