<p>Arthur Heymans has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/23043">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">mb/asrock/g41c-gs: Add g41m-gs variant<br><br>This board is quite similar to the other ones in this dir an can be<br>supported with little code changes.<br><br>TODO what works:<br>...<br><br>TODO how tested:<br>...<br><br>Change-Id: I6844efacaae109cf1e0894201852fddd8043a706<br>Signed-off-by: Arthur Heymans <arthur@aheymans.xyz><br>---<br>M src/mainboard/asrock/g41c-gs/Kconfig<br>M src/mainboard/asrock/g41c-gs/Kconfig.name<br>M src/mainboard/asrock/g41c-gs/gpio.c<br>A src/mainboard/asrock/g41c-gs/variants/g41m-gs/devicetree.cb<br>4 files changed, 161 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/43/23043/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/mainboard/asrock/g41c-gs/Kconfig b/src/mainboard/asrock/g41c-gs/Kconfig</span><br><span>index 7d0b781..a24c7c9 100644</span><br><span>--- a/src/mainboard/asrock/g41c-gs/Kconfig</span><br><span>+++ b/src/mainboard/asrock/g41c-gs/Kconfig</span><br><span>@@ -14,7 +14,7 @@</span><br><span> # GNU General Public License for more details.</span><br><span> #</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-if BOARD_ASROCK_G41C_GS_R2_0 || BOARD_ASROCK_G41C_GS</span><br><span style="color: hsl(120, 100%, 40%);">+if BOARD_ASROCK_G41C_GS_R2_0 || BOARD_ASROCK_G41C_GS || BOARD_ASROCK_G41M_GS</span><br><span> </span><br><span> config BOARD_SPECIFIC_OPTIONS</span><br><span>        def_bool y</span><br><span>@@ -23,7 +23,8 @@</span><br><span>       select NORTHBRIDGE_INTEL_X4X</span><br><span>         select SOUTHBRIDGE_INTEL_I82801GX</span><br><span>    select SUPERIO_NUVOTON_NCT6776 if BOARD_ASROCK_G41C_GS_R2_0</span><br><span style="color: hsl(0, 100%, 40%);">-     select SUPERIO_WINBOND_W83627DHG if BOARD_ASROCK_G41C_GS</span><br><span style="color: hsl(120, 100%, 40%);">+      select SUPERIO_WINBOND_W83627DHG if BOARD_ASROCK_G41C_GS \</span><br><span style="color: hsl(120, 100%, 40%);">+            || BOARD_ASROCK_G41M_GS</span><br><span>      select HAVE_ACPI_TABLES</span><br><span>      select BOARD_ROMSIZE_KB_1024</span><br><span>         select INTEL_EDID</span><br><span>@@ -44,11 +45,13 @@</span><br><span>      string</span><br><span>       default "G41C-GS R2.0" if BOARD_ASROCK_G41C_GS_R2_0</span><br><span>        default "G41C-GS" if BOARD_ASROCK_G41C_GS</span><br><span style="color: hsl(120, 100%, 40%);">+   default "G41M-GS" if BOARD_ASROCK_G41M_GS</span><br><span> </span><br><span> config DEVICETREE</span><br><span>         string</span><br><span>       default "variants/g41c-gs-r2/devicetree.cb" if BOARD_ASROCK_G41C_GS_R2_0</span><br><span>   default "variants/g41c-gs/devicetree.cb" if BOARD_ASROCK_G41C_GS</span><br><span style="color: hsl(120, 100%, 40%);">+    default "variants/g41m-gs/devicetree.cb" if BOARD_ASROCK_G41M_GS</span><br><span> </span><br><span> config MAX_CPUS</span><br><span>    int</span><br><span>diff --git a/src/mainboard/asrock/g41c-gs/Kconfig.name b/src/mainboard/asrock/g41c-gs/Kconfig.name</span><br><span>index 5ce5aa7..329a3e2 100644</span><br><span>--- a/src/mainboard/asrock/g41c-gs/Kconfig.name</span><br><span>+++ b/src/mainboard/asrock/g41c-gs/Kconfig.name</span><br><span>@@ -3,3 +3,6 @@</span><br><span> </span><br><span> config BOARD_ASROCK_G41C_GS</span><br><span>    bool "G41C-GS / G41C-S"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+config BOARD_ASROCK_G41M_GS</span><br><span style="color: hsl(120, 100%, 40%);">+      bool "G41M-GS"</span><br><span>diff --git a/src/mainboard/asrock/g41c-gs/gpio.c b/src/mainboard/asrock/g41c-gs/gpio.c</span><br><span>index 822638f..3a1ed80 100644</span><br><span>--- a/src/mainboard/asrock/g41c-gs/gpio.c</span><br><span>+++ b/src/mainboard/asrock/g41c-gs/gpio.c</span><br><span>@@ -45,14 +45,22 @@</span><br><span>      .gpio10 = GPIO_DIR_OUTPUT,</span><br><span>   .gpio12 = GPIO_DIR_INPUT,</span><br><span>    .gpio13 = GPIO_DIR_INPUT,</span><br><span style="color: hsl(120, 100%, 40%);">+#if IS_ENABLED(CONFIG_BOARD_ASROCK_G41M_GS)</span><br><span style="color: hsl(120, 100%, 40%);">+        .gpio14 = GPIO_DIR_OUTPUT,</span><br><span style="color: hsl(120, 100%, 40%);">+#else</span><br><span>    .gpio14 = GPIO_DIR_INPUT,</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span>    .gpio15 = GPIO_DIR_OUTPUT,</span><br><span>   .gpio16 = GPIO_DIR_OUTPUT,</span><br><span>   .gpio18 = GPIO_DIR_OUTPUT,</span><br><span>   .gpio20 = GPIO_DIR_OUTPUT,</span><br><span>   .gpio24 = GPIO_DIR_OUTPUT,</span><br><span>   .gpio25 = GPIO_DIR_OUTPUT,</span><br><span style="color: hsl(120, 100%, 40%);">+#if IS_ENABLED(CONFIG_BOARD_ASROCK_G41M_GS)</span><br><span style="color: hsl(120, 100%, 40%);">+       .gpio26 = GPIO_DIR_OUTPUT,</span><br><span style="color: hsl(120, 100%, 40%);">+#else</span><br><span>    .gpio26 = GPIO_DIR_INPUT,</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span>    .gpio27 = GPIO_DIR_OUTPUT,</span><br><span>   .gpio28 = GPIO_DIR_INPUT,</span><br><span> };</span><br><span>@@ -68,15 +76,21 @@</span><br><span>        .gpio25 = GPIO_LEVEL_LOW,</span><br><span>    .gpio27 = GPIO_LEVEL_LOW,</span><br><span> };</span><br><span style="color: hsl(0, 100%, 40%);">-#else /* BOARD_ASROCK_G41C_GS */</span><br><span style="color: hsl(120, 100%, 40%);">+#else /* BOARD_ASROCK_G41C_GS, BOARD_ASROCK_G41M_GS*/</span><br><span> static const struct pch_gpio_set1 pch_gpio_set1_level = {</span><br><span>         .gpio10 = GPIO_LEVEL_LOW,</span><br><span style="color: hsl(120, 100%, 40%);">+#if IS_ENABLED(CONFIG_BOARD_ASROCK_G41M_GS)</span><br><span style="color: hsl(120, 100%, 40%);">+ .gpio14 = GPIO_LEVEL_HIGH,</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span>         .gpio15 = GPIO_LEVEL_LOW,</span><br><span>         .gpio16 = GPIO_LEVEL_HIGH,</span><br><span>         .gpio18 = GPIO_LEVEL_LOW,</span><br><span>         .gpio20 = GPIO_LEVEL_HIGH,</span><br><span>         .gpio24 = GPIO_LEVEL_HIGH,</span><br><span>         .gpio25 = GPIO_LEVEL_LOW,</span><br><span style="color: hsl(120, 100%, 40%);">+#if IS_ENABLED(CONFIG_BOARD_ASROCK_G41M_GS)</span><br><span style="color: hsl(120, 100%, 40%);">+      .gpio26 = GPIO_LEVEL_LOW,</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span>         .gpio27 = GPIO_LEVEL_LOW,</span><br><span> };</span><br><span> #endif</span><br><span>@@ -84,6 +98,9 @@</span><br><span> static const struct pch_gpio_set1 pch_gpio_set1_invert = {</span><br><span>     .gpio0 = GPIO_INVERT,</span><br><span>        .gpio6 = GPIO_INVERT,</span><br><span style="color: hsl(120, 100%, 40%);">+#if IS_ENABLED(CONFIG_BOARD_ASROCK_G41M_GS)</span><br><span style="color: hsl(120, 100%, 40%);">+    .gpio8 = GPIO_INVERT,</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span>        .gpio12 = GPIO_INVERT,</span><br><span>       .gpio13 = GPIO_INVERT,</span><br><span> };</span><br><span>diff --git a/src/mainboard/asrock/g41c-gs/variants/g41m-gs/devicetree.cb b/src/mainboard/asrock/g41c-gs/variants/g41m-gs/devicetree.cb</span><br><span>new file mode 100644</span><br><span>index 0000000..36335c8</span><br><span>--- /dev/null</span><br><span>+++ b/src/mainboard/asrock/g41c-gs/variants/g41m-gs/devicetree.cb</span><br><span>@@ -0,0 +1,135 @@</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Copyright (C) 2017 Arthur Heymans <arthur@aheymans.xyz></span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+# it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+# the Free Software Foundation; either version 2 of the License, or</span><br><span style="color: hsl(120, 100%, 40%);">+# (at your option) any later version.</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+# but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+# GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+chip northbridge/intel/x4x             # Northbridge</span><br><span style="color: hsl(120, 100%, 40%);">+ device cpu_cluster 0 on         # APIC cluster</span><br><span style="color: hsl(120, 100%, 40%);">+                chip cpu/intel/socket_LGA775</span><br><span style="color: hsl(120, 100%, 40%);">+                  device lapic 0 on end</span><br><span style="color: hsl(120, 100%, 40%);">+         end</span><br><span style="color: hsl(120, 100%, 40%);">+           chip cpu/intel/model_1067x              # CPU</span><br><span style="color: hsl(120, 100%, 40%);">+                 device lapic 0xACAC off end</span><br><span style="color: hsl(120, 100%, 40%);">+           end</span><br><span style="color: hsl(120, 100%, 40%);">+   end</span><br><span style="color: hsl(120, 100%, 40%);">+   device domain 0 on              # PCI domain</span><br><span style="color: hsl(120, 100%, 40%);">+          subsystemid 0x1458 0x5000 inherit</span><br><span style="color: hsl(120, 100%, 40%);">+             device pci 0.0 on                       # Host Bridge</span><br><span style="color: hsl(120, 100%, 40%);">+                 subsystemid 0x1849 0x2e30</span><br><span style="color: hsl(120, 100%, 40%);">+             end</span><br><span style="color: hsl(120, 100%, 40%);">+           device pci 1.0 on end                   # PEG</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+               device pci 2.0 on                       # Integrated graphics controller</span><br><span style="color: hsl(120, 100%, 40%);">+                      subsystemid 0x1849 0x2e32</span><br><span style="color: hsl(120, 100%, 40%);">+             end</span><br><span style="color: hsl(120, 100%, 40%);">+           device pci 3.0 off end          # ME</span><br><span style="color: hsl(120, 100%, 40%);">+          device pci 3.1 off end          # ME</span><br><span style="color: hsl(120, 100%, 40%);">+          chip southbridge/intel/i82801gx # Southbridge</span><br><span style="color: hsl(120, 100%, 40%);">+                 register "pirqa_routing" = "0x0b"</span><br><span style="color: hsl(120, 100%, 40%);">+                 register "pirqb_routing" = "0x0b"</span><br><span style="color: hsl(120, 100%, 40%);">+                 register "pirqc_routing" = "0x0b"</span><br><span style="color: hsl(120, 100%, 40%);">+                 register "pirqd_routing" = "0x0b"</span><br><span style="color: hsl(120, 100%, 40%);">+                 register "pirqe_routing" = "0x80"</span><br><span style="color: hsl(120, 100%, 40%);">+                 register "pirqf_routing" = "0x80"</span><br><span style="color: hsl(120, 100%, 40%);">+                 register "pirqg_routing" = "0x80"</span><br><span style="color: hsl(120, 100%, 40%);">+                 register "pirqh_routing" = "0x0b"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                       register "ide_enable_primary" = "0x1"</span><br><span style="color: hsl(120, 100%, 40%);">+                     register "sata_ahci" = "0x0" # AHCI not supported on this ICH7 variant</span><br><span style="color: hsl(120, 100%, 40%);">+                    register "sata_ports_implemented" = "0x3"</span><br><span style="color: hsl(120, 100%, 40%);">+                 register "gpe0_en" = "0x440"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                    device pci 1b.0 on              # Audio</span><br><span style="color: hsl(120, 100%, 40%);">+                               subsystemid 0x1849 0x3662</span><br><span style="color: hsl(120, 100%, 40%);">+                     end</span><br><span style="color: hsl(120, 100%, 40%);">+                   device pci 1c.0 on end          # PCIe 1</span><br><span style="color: hsl(120, 100%, 40%);">+                      device pci 1c.1 on end          # PCIe 2</span><br><span style="color: hsl(120, 100%, 40%);">+                      device pci 1c.2 off end         # PCIe 3</span><br><span style="color: hsl(120, 100%, 40%);">+                      device pci 1c.3 off end         # PCIe 4</span><br><span style="color: hsl(120, 100%, 40%);">+                      device pci 1d.0 on              # USB</span><br><span style="color: hsl(120, 100%, 40%);">+                         subsystemid 0x1849 0x27c8</span><br><span style="color: hsl(120, 100%, 40%);">+                     end</span><br><span style="color: hsl(120, 100%, 40%);">+                   device pci 1d.1 on              # USB</span><br><span style="color: hsl(120, 100%, 40%);">+                         subsystemid 0x1849 0x27c9</span><br><span style="color: hsl(120, 100%, 40%);">+                     end</span><br><span style="color: hsl(120, 100%, 40%);">+                   device pci 1d.2 on              # USB</span><br><span style="color: hsl(120, 100%, 40%);">+                         subsystemid 0x1849 0x27ca</span><br><span style="color: hsl(120, 100%, 40%);">+                     end</span><br><span style="color: hsl(120, 100%, 40%);">+                   device pci 1d.3 on              # USB</span><br><span style="color: hsl(120, 100%, 40%);">+                         subsystemid 0x1849 0x27cb</span><br><span style="color: hsl(120, 100%, 40%);">+                     end</span><br><span style="color: hsl(120, 100%, 40%);">+                   device pci 1d.7 on              # USB</span><br><span style="color: hsl(120, 100%, 40%);">+                         subsystemid 0x1849 0x27cc</span><br><span style="color: hsl(120, 100%, 40%);">+                     end</span><br><span style="color: hsl(120, 100%, 40%);">+                   device pci 1e.0 on end          # PCI bridge</span><br><span style="color: hsl(120, 100%, 40%);">+                  device pci 1f.0 on              # ISA bridge</span><br><span style="color: hsl(120, 100%, 40%);">+                          subsystemid 0x1849 0x27b8</span><br><span style="color: hsl(120, 100%, 40%);">+                                     chip superio/winbond/w83627dhg</span><br><span style="color: hsl(120, 100%, 40%);">+                                        device pnp 2e.0 off end         # Floppy</span><br><span style="color: hsl(120, 100%, 40%);">+                                      device pnp 2e.1 on              # Parallel port</span><br><span style="color: hsl(120, 100%, 40%);">+                                               # global</span><br><span style="color: hsl(120, 100%, 40%);">+                                              irq 0x28 = 0x70</span><br><span style="color: hsl(120, 100%, 40%);">+                                               irq 0x2c = 0xd2</span><br><span style="color: hsl(120, 100%, 40%);">+                                               # parallel port</span><br><span style="color: hsl(120, 100%, 40%);">+                                               io 0x60 = 0x378</span><br><span style="color: hsl(120, 100%, 40%);">+                                               irq 0x70 = 7</span><br><span style="color: hsl(120, 100%, 40%);">+                                          drq 0x74 = 3</span><br><span style="color: hsl(120, 100%, 40%);">+                                  end</span><br><span style="color: hsl(120, 100%, 40%);">+                                   device pnp 2e.2 on              # COM1</span><br><span style="color: hsl(120, 100%, 40%);">+                                                io 0x60 = 0x3f8</span><br><span style="color: hsl(120, 100%, 40%);">+                                               irq 0x70 = 4</span><br><span style="color: hsl(120, 100%, 40%);">+                                  end</span><br><span style="color: hsl(120, 100%, 40%);">+                                   device pnp 2e.3 off end         # COM2</span><br><span style="color: hsl(120, 100%, 40%);">+                                        device pnp 2e.5 on              # Keyboard & MOUSE</span><br><span style="color: hsl(120, 100%, 40%);">+                                                io 0x60 = 0x60</span><br><span style="color: hsl(120, 100%, 40%);">+                                                io 0x62 = 0x64</span><br><span style="color: hsl(120, 100%, 40%);">+                                                irq 0x70 = 1</span><br><span style="color: hsl(120, 100%, 40%);">+                                          irq 0x72 = 0x0C</span><br><span style="color: hsl(120, 100%, 40%);">+                                       end</span><br><span style="color: hsl(120, 100%, 40%);">+                                   device pnp 2e.6 off end         # SPI</span><br><span style="color: hsl(120, 100%, 40%);">+                                 device pnp 2e.7 off end         # GPIO6</span><br><span style="color: hsl(120, 100%, 40%);">+                                       device pnp 2e.8 off end         # WDT0#, PLED</span><br><span style="color: hsl(120, 100%, 40%);">+                                 device pnp 2e.9 on end          # GPIO2</span><br><span style="color: hsl(120, 100%, 40%);">+                                       device pnp 2e.109 on    # GPIO3</span><br><span style="color: hsl(120, 100%, 40%);">+                                               irq 0xfe = 0x07</span><br><span style="color: hsl(120, 100%, 40%);">+                                       end</span><br><span style="color: hsl(120, 100%, 40%);">+                                   device pnp 2e.209 on            # GPIO4</span><br><span style="color: hsl(120, 100%, 40%);">+                                               irq 0xf4 = 0x73</span><br><span style="color: hsl(120, 100%, 40%);">+                                       end</span><br><span style="color: hsl(120, 100%, 40%);">+                                   device pnp 2e.309 off end       # GPIO5</span><br><span style="color: hsl(120, 100%, 40%);">+                                       device pnp 2e.a on              # ACPI</span><br><span style="color: hsl(120, 100%, 40%);">+                                                irq 0xe4 = 0x10 # Power dram during s3</span><br><span style="color: hsl(120, 100%, 40%);">+                                        end</span><br><span style="color: hsl(120, 100%, 40%);">+                                   device pnp 2e.b on              # HWM, front pannel LED</span><br><span style="color: hsl(120, 100%, 40%);">+                                               io 0x60 = 0x290</span><br><span style="color: hsl(120, 100%, 40%);">+                                               irq 0x70 = 0</span><br><span style="color: hsl(120, 100%, 40%);">+                                  end</span><br><span style="color: hsl(120, 100%, 40%);">+                                   device pnp 2e.c off end         # PECI, SST</span><br><span style="color: hsl(120, 100%, 40%);">+                           end</span><br><span style="color: hsl(120, 100%, 40%);">+                   end</span><br><span style="color: hsl(120, 100%, 40%);">+                   device pci 1f.1 on              # PATA/IDE</span><br><span style="color: hsl(120, 100%, 40%);">+                            subsystemid 0x1849 0x27df</span><br><span style="color: hsl(120, 100%, 40%);">+                     end</span><br><span style="color: hsl(120, 100%, 40%);">+                   device pci 1f.2 on              # SATA</span><br><span style="color: hsl(120, 100%, 40%);">+                                subsystemid 0x1849 0x27c0</span><br><span style="color: hsl(120, 100%, 40%);">+                     end</span><br><span style="color: hsl(120, 100%, 40%);">+                   device pci 1f.3 on              # SMbus</span><br><span style="color: hsl(120, 100%, 40%);">+                               subsystemid 0x1849 0x27da</span><br><span style="color: hsl(120, 100%, 40%);">+                     end</span><br><span style="color: hsl(120, 100%, 40%);">+                   device pci 1f.4 off end</span><br><span style="color: hsl(120, 100%, 40%);">+                       device pci 1f.5 off end</span><br><span style="color: hsl(120, 100%, 40%);">+                       device pci 1f.6 off end</span><br><span style="color: hsl(120, 100%, 40%);">+               end</span><br><span style="color: hsl(120, 100%, 40%);">+   end</span><br><span style="color: hsl(120, 100%, 40%);">+end</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/23043">change 23043</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/23043"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I6844efacaae109cf1e0894201852fddd8043a706 </div>
<div style="display:none"> Gerrit-Change-Number: 23043 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Arthur Heymans <arthur@aheymans.xyz> </div>