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