Kyösti Mälkki has submitted this change and it was merged. ( https://review.coreboot.org/c/coreboot/+/31752 )
Change subject: device/pci: Rewrite PCI MMCONF with symbol reference
......................................................................
device/pci: Rewrite PCI MMCONF with symbol reference
The effect of pointer aliasing on writes is that any data on CPU
registers that has been resolved from (non-const and non-volatile)
memory objects has to be discarded and resolved. In other words, the
compiler assumes that a pointer that does not have an absolute value
at build-time, and is of type 'void *' or 'char *', may write over
any memory object.
Using a unique datatype for MMIO writes makes the pointer to _not_
qualify for pointer aliasing with any other objects in memory. This
avoid constantly resolving the PCI MMCONF address, which is a derived
value from a 'struct device *'.
Change-Id: Id112aa5e729ffd8015bb806786bdee38783b7ea9
Signed-off-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/31752
Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
Tested-by: build bot (Jenkins) <no-reply(a)coreboot.org>
---
A src/arch/x86/include/arch/pci_mmio_cfg_romcc.h
M src/arch/x86/include/arch/pci_ops.h
M src/device/Makefile.inc
M src/device/pci_ops.c
M src/include/device/pci_mmio_cfg.h
M src/include/device/pci_type.h
6 files changed, 130 insertions(+), 19 deletions(-)
Approvals:
build bot (Jenkins): Verified
Aaron Durbin: Looks good to me, approved
diff --git a/src/arch/x86/include/arch/pci_mmio_cfg_romcc.h b/src/arch/x86/include/arch/pci_mmio_cfg_romcc.h
new file mode 100644
index 0000000..00e8e41
--- /dev/null
+++ b/src/arch/x86/include/arch/pci_mmio_cfg_romcc.h
@@ -0,0 +1,72 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2007-2009 coresystems GmbH
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef _PCI_MMIO_CFG_ROMCC_H
+#define _PCI_MMIO_CFG_ROMCC_H
+
+#include <stdint.h>
+#include <device/mmio.h>
+#include <device/pci_type.h>
+
+
+static __always_inline
+uint8_t pci_mmio_read_config8(pci_devfn_t dev, uint16_t reg)
+{
+ void *addr;
+ addr = (void *)(uintptr_t)(CONFIG_MMCONF_BASE_ADDRESS | dev | reg);
+ return read8(addr);
+}
+
+static __always_inline
+uint16_t pci_mmio_read_config16(pci_devfn_t dev, uint16_t reg)
+{
+ void *addr;
+ addr = (void *)(uintptr_t)(CONFIG_MMCONF_BASE_ADDRESS | dev | (reg & ~1));
+ return read16(addr);
+}
+
+static __always_inline
+uint32_t pci_mmio_read_config32(pci_devfn_t dev, uint16_t reg)
+{
+ void *addr;
+ addr = (void *)(uintptr_t)(CONFIG_MMCONF_BASE_ADDRESS | dev | (reg & ~3));
+ return read32(addr);
+}
+
+static __always_inline
+void pci_mmio_write_config8(pci_devfn_t dev, uint16_t reg, uint8_t value)
+{
+ void *addr;
+ addr = (void *)(uintptr_t)(CONFIG_MMCONF_BASE_ADDRESS | dev | reg);
+ write8(addr, value);
+}
+
+static __always_inline
+void pci_mmio_write_config16(pci_devfn_t dev, uint16_t reg, uint16_t value)
+{
+ void *addr;
+ addr = (void *)(uintptr_t)(CONFIG_MMCONF_BASE_ADDRESS | dev | (reg & ~1));
+ write16(addr, value);
+}
+
+static __always_inline
+void pci_mmio_write_config32(pci_devfn_t dev, uint16_t reg, uint32_t value)
+{
+ void *addr;
+ addr = (void *)(uintptr_t)(CONFIG_MMCONF_BASE_ADDRESS | dev | (reg & ~3));
+ write32(addr, value);
+}
+
+#endif /* _PCI_MMIO_CFG_ROMCC_H */
diff --git a/src/arch/x86/include/arch/pci_ops.h b/src/arch/x86/include/arch/pci_ops.h
index e706216..4278ed0 100644
--- a/src/arch/x86/include/arch/pci_ops.h
+++ b/src/arch/x86/include/arch/pci_ops.h
@@ -15,6 +15,12 @@
#define ARCH_I386_PCI_OPS_H
#include <arch/pci_io_cfg.h>
+
+#if defined(__ROMCC__)
+/* Must come before <device/pci_mmio_cfg.h> */
+#include <arch/pci_mmio_cfg_romcc.h>
+#endif
+
#include <device/pci_mmio_cfg.h>
#endif /* ARCH_I386_PCI_OPS_H */
diff --git a/src/device/Makefile.inc b/src/device/Makefile.inc
index 711a403..baa45be 100644
--- a/src/device/Makefile.inc
+++ b/src/device/Makefile.inc
@@ -26,9 +26,15 @@
ramstage-y += pci_class.c
ramstage-y += pci_device.c
-ramstage-y += pci_ops.c
ramstage-y += pci_rom.c
+bootblock-y += pci_ops.c
+verstage-y += pci_ops.c
+romstage-y += pci_ops.c
+postcar-y += pci_ops.c
+ramstage-y += pci_ops.c
+smm-y += pci_ops.c
+
ramstage-$(CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT) += hypertransport.c
ramstage-$(CONFIG_PCIX_PLUGIN_SUPPORT) += pcix_device.c
ramstage-$(CONFIG_PCIEXP_PLUGIN_SUPPORT) += pciexp_device.c
diff --git a/src/device/pci_ops.c b/src/device/pci_ops.c
index bdf8ec4..34f9d1e 100644
--- a/src/device/pci_ops.c
+++ b/src/device/pci_ops.c
@@ -10,3 +10,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
+
+#include <stdint.h>
+
+u8 *const pci_mmconf = (void *)(uintptr_t)CONFIG_MMCONF_BASE_ADDRESS;
diff --git a/src/include/device/pci_mmio_cfg.h b/src/include/device/pci_mmio_cfg.h
index e701915..5567ed8 100644
--- a/src/include/device/pci_mmio_cfg.h
+++ b/src/include/device/pci_mmio_cfg.h
@@ -20,55 +20,74 @@
#include <device/mmio.h>
#include <device/pci_type.h>
+#if !defined(__ROMCC__)
+
+/* By not assigning this to CONFIG_MMCONF_BASE_ADDRESS here we
+ * prevent some sub-optimal constant folding. */
+extern u8 *const pci_mmconf;
+
+/* Using a unique datatype for MMIO writes makes the pointers to _not_
+ * qualify for pointer aliasing with any other objects in memory.
+ *
+ * MMIO offset is a value originally derived from 'struct device *'
+ * in ramstage. For the compiler to not discard this MMIO offset value
+ * from CPU registers after any MMIO writes, -fstrict-aliasing has to
+ * be also set for the build.
+ *
+ * Bottom 12 bits (4 KiB) are reserved to address the registers of a
+ * single PCI function. Declare the bank as a union to avoid some casting
+ * in the functions below.
+ */
+union pci_bank {
+ uint8_t reg8[4096];
+ uint16_t reg16[4096 / sizeof(uint16_t)];
+ uint32_t reg32[4096 / sizeof(uint32_t)];
+};
+
+static __always_inline
+volatile union pci_bank *pcicfg(pci_devfn_t dev)
+{
+ return (void *)&pci_mmconf[PCI_DEVFN_OFFSET(dev)];
+}
static __always_inline
uint8_t pci_mmio_read_config8(pci_devfn_t dev, uint16_t reg)
{
- void *addr;
- addr = (void *)(uintptr_t)(CONFIG_MMCONF_BASE_ADDRESS | dev | reg);
- return read8(addr);
+ return pcicfg(dev)->reg8[reg];
}
static __always_inline
uint16_t pci_mmio_read_config16(pci_devfn_t dev, uint16_t reg)
{
- void *addr;
- addr = (void *)(uintptr_t)(CONFIG_MMCONF_BASE_ADDRESS | dev | (reg & ~1));
- return read16(addr);
+ return pcicfg(dev)->reg16[reg / sizeof(uint16_t)];
}
static __always_inline
uint32_t pci_mmio_read_config32(pci_devfn_t dev, uint16_t reg)
{
- void *addr;
- addr = (void *)(uintptr_t)(CONFIG_MMCONF_BASE_ADDRESS | dev | (reg & ~3));
- return read32(addr);
+ return pcicfg(dev)->reg32[reg / sizeof(uint32_t)];
}
static __always_inline
void pci_mmio_write_config8(pci_devfn_t dev, uint16_t reg, uint8_t value)
{
- void *addr;
- addr = (void *)(uintptr_t)(CONFIG_MMCONF_BASE_ADDRESS | dev | reg);
- write8(addr, value);
+ pcicfg(dev)->reg8[reg] = value;
}
static __always_inline
void pci_mmio_write_config16(pci_devfn_t dev, uint16_t reg, uint16_t value)
{
- void *addr;
- addr = (void *)(uintptr_t)(CONFIG_MMCONF_BASE_ADDRESS | dev | (reg & ~1));
- write16(addr, value);
+ pcicfg(dev)->reg16[reg / sizeof(uint16_t)] = value;
}
static __always_inline
void pci_mmio_write_config32(pci_devfn_t dev, uint16_t reg, uint32_t value)
{
- void *addr;
- addr = (void *)(uintptr_t)(CONFIG_MMCONF_BASE_ADDRESS | dev | (reg & ~3));
- write32(addr, value);
+ pcicfg(dev)->reg32[reg / sizeof(uint32_t)] = value;
}
+#endif /* !defined(__ROMCC__) */
+
#if CONFIG(MMCONF_SUPPORT)
/* Avoid name collisions as different stages have different signature
diff --git a/src/include/device/pci_type.h b/src/include/device/pci_type.h
index 27d3558..4d8c2a3 100644
--- a/src/include/device/pci_type.h
+++ b/src/include/device/pci_type.h
@@ -18,6 +18,10 @@
typedef u32 pci_devfn_t;
+/* Convert pci_devfn_t to offset in MMCONF space.
+ * As it is one-to-one, nothing needs to be done. */
+#define PCI_DEVFN_OFFSET(x) ((x))
+
#define PCI_DEV(SEGBUS, DEV, FN) ( \
(((SEGBUS) & 0xFFF) << 20) | \
(((DEV) & 0x1F) << 15) | \
--
To view, visit https://review.coreboot.org/c/coreboot/+/31752
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Id112aa5e729ffd8015bb806786bdee38783b7ea9
Gerrit-Change-Number: 31752
Gerrit-PatchSet: 9
Gerrit-Owner: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Gerrit-Reviewer: Aaron Durbin <adurbin(a)chromium.org>
Gerrit-Reviewer: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Gerrit-Reviewer: Martin Roth <martinroth(a)google.com>
Gerrit-Reviewer: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Patrick Georgi <pgeorgi(a)google.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Paul Menzel <paulepanter(a)users.sourceforge.net>
Gerrit-CC: Werner Zeh <werner.zeh(a)siemens.com>
Gerrit-MessageType: merged
Abdullah Zafar has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/32220
Change subject: Add empty stubs for KASAN to coreboot. Kconfig default settings set to compile with KASAN.
......................................................................
Add empty stubs for KASAN to coreboot.
Kconfig default settings set to compile with KASAN.
Signed-off-by: 11abdullah11 <abdullahzafar4876(a)yahoo.com>
Change-Id: I424dcb16fc33f356fca823866a7c869484c42870
modified: src/Kconfig
modified: src/lib/Makefile.inc
new file: src/lib/kasan.c
Change-Id: Ib40ab0116550fd2a5cb208abc39f0df6d80192fa
---
A .tmpconfig.lintkyQ0Qt
A .tmpconfig.lintq3Y6J5
A .tmpconfig.linttyjU7F
A .tmpconfig.lintvEnN0V
M src/Kconfig
M src/lib/Makefile.inc
A src/lib/kasan.c
7 files changed, 46 insertions(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/20/32220/1
diff --git a/.tmpconfig.lintkyQ0Qt b/.tmpconfig.lintkyQ0Qt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.tmpconfig.lintkyQ0Qt
diff --git a/.tmpconfig.lintq3Y6J5 b/.tmpconfig.lintq3Y6J5
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.tmpconfig.lintq3Y6J5
diff --git a/.tmpconfig.linttyjU7F b/.tmpconfig.linttyjU7F
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.tmpconfig.linttyjU7F
diff --git a/.tmpconfig.lintvEnN0V b/.tmpconfig.lintvEnN0V
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.tmpconfig.lintvEnN0V
diff --git a/src/Kconfig b/src/Kconfig
index 62b3818..263cde3 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -219,6 +219,15 @@
coverage information in CBMEM for extraction from user space.
If unsure, say N.
+config KASAN
+ bool "Kernel Address sanitizer support"
+ default y
+ help
+ Instrument the code with checks for UAF and OOB erros. If unsure,
+ say N because it adds a small performance penalty and may abort
+ on code that happens to work in spite of the UB.
+
+
config UBSAN
bool "Undefined behavior sanitizer support"
default n
diff --git a/src/lib/Makefile.inc b/src/lib/Makefile.inc
index 1350152..88afaaa 100644
--- a/src/lib/Makefile.inc
+++ b/src/lib/Makefile.inc
@@ -19,6 +19,12 @@
CFLAGS_ramstage += -fsanitize=undefined
endif
+ifeq ($(CONFIG_KASAN),y)
+ramstage-y += kasan.c
+CFLAGS_ramstage += -fsanitize=kernel-address
+endif
+
+
decompressor-y += decompressor.c
$(call src-to-obj,decompressor,$(dir)/decompressor.c): $(objcbfs)/bootblock.lz4
$(call src-to-obj,decompressor,$(dir)/decompressor.c): CCACHE_EXTRAFILES=$(objcbfs)/bootblock.lz4
@@ -83,7 +89,7 @@
romstage-y += memrange.c
romstage-$(CONFIG_PRIMITIVE_MEMTEST) += primitive_memtest.c
ramstage-$(CONFIG_PRIMITIVE_MEMTEST) += primitive_memtest.c
-romstage-y += ramtest.c
+romstage-$(CONFIG_CACHE_AS_RAM) += ramtest.c
romstage-$(CONFIG_GENERIC_GPIO_LIB) += gpio.c
ramstage-y += region_file.c
romstage-y += region_file.c
diff --git a/src/lib/kasan.c b/src/lib/kasan.c
new file mode 100644
index 0000000..28ff1ed
--- /dev/null
+++ b/src/lib/kasan.c
@@ -0,0 +1,30 @@
+#include <stddef.h>
+
+/*
+ *Empty stubs for required by gcc to add compiler code
+ */
+
+void __asan_handle_no_return(void);
+void __asan_load1_noabort(unsigned long addr);
+void __asan_store1_noabort(unsigned long addr);
+void __asan_load2_noabort(unsigned long addr);
+void __asan_store2_noabort(unsigned long addr);
+void __asan_load4_noabort(unsigned long addr);
+void __asan_store4_noabort(unsigned long addr);
+void __asan_load8_noabort(unsigned long addr);
+void __asan_store8_noabort(unsigned long addr);
+void __asan_loadN_noabort(unsigned long addr,size_t);
+void __asan_storeN_noabort(unsigned long addr,size_t);
+
+
+void __asan_handle_no_return(void){ }
+void __asan_load1_noabort(unsigned long addr){ }
+void __asan_store1_noabort(unsigned long addr){ }
+void __asan_load2_noabort(unsigned long addr){ }
+void __asan_store2_noabort(unsigned long addr){ }
+void __asan_load4_noabort(unsigned long addr){ }
+void __asan_store4_noabort(unsigned long addr){ }
+void __asan_store8_noabort(unsigned long addr){ }
+void __asan_load8_noabort(unsigned long addr){ }
+void __asan_loadN_noabort(unsigned long addr,size_t i){ }
+void __asan_storeN_noabort(unsigned long addr,size_t i){ }
--
To view, visit https://review.coreboot.org/c/coreboot/+/32220
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ib40ab0116550fd2a5cb208abc39f0df6d80192fa
Gerrit-Change-Number: 32220
Gerrit-PatchSet: 1
Gerrit-Owner: Abdullah Zafar <abdullahzafar4876(a)yahoo.com>
Gerrit-MessageType: newchange
Patrick Rudolph has uploaded a new patch set (#12) to the change originally created by Evgeny Zinoviev. ( https://review.coreboot.org/c/coreboot/+/28380 )
Change subject: [WIP] Nvidia Optimus support for ThinkPads
......................................................................
[WIP] Nvidia Optimus support for ThinkPads
Based on siro's work #23041.
Adds ACPI code for dGPU power management using the dGPU kernel module.
With Nvidia Optimus active the idle power consumption drops from
22,8W to 13,8W with maximum screen brightness.
Depends on:
https://review.coreboot.org/#/c/coreboot/+/28392https://review.coreboot.org/#/c/coreboot/+/28393
What works (tested on 4.16.13-gentoo kernel):
- power management via _PS0 and _DSM + _PS3 ACPI calls
- nouveau driver
- bumblebee (from the "develop" branch)
- bbswitch
lspci turns on the dGPU, but that is expected, as otherwise it can't access
the device's address space.
The Nvidia Optimus driver needs to be enabled by setting
CONFIG_NVIDIA_OPTIMUS=y
Tested on ThinkPad W530 and Thinkpad T520.
Known problems:
- nvidia driver doens't work:
[ 275.244113] NVRM: failed to copy vbios to system memory.
[ 275.244345] NVRM: RmInitAdapter failed! (0x30:0xffff:663)
[ 275.244433] NVRM: rm_init_adapter failed for device bearing minor number 0
[ 275.347956] NVRM: failed to copy vbios to system memory.
[ 275.348140] NVRM: RmInitAdapter failed! (0x30:0xffff:663)
[ 275.348163] NVRM: rm_init_adapter failed for device bearing minor number 0
- Random CPU core lockups
TODO:
- Disable PEG clock to decrease idle power by 1W.
- Do longterm stability tests.
- Document _DSM and code.
Change-Id: I277808d6c1d8bd6e0a267a53f25471597698f8d5
Signed-off-by: Evgeny Zinoviev <me(a)ch1p.com>
Signed-off-by: Patrick Rudolph <siro(a)das-labor.org>
---
A src/drivers/nvidia/optimus/Kconfig
A src/drivers/nvidia/optimus/acpi/optimus.asl
A src/ec/lenovo/pmh7/acpi/optimus_sandy_ivy.asl
A src/ec/lenovo/pmh7/acpi/pmh7.asl
M src/ec/lenovo/pmh7/pmh7.h
M src/mainboard/lenovo/t420/Kconfig
M src/mainboard/lenovo/t420/acpi/ec.asl
M src/mainboard/lenovo/t420s/Kconfig
M src/mainboard/lenovo/t420s/acpi/ec.asl
M src/mainboard/lenovo/t430/Kconfig
M src/mainboard/lenovo/t430/acpi/ec.asl
M src/mainboard/lenovo/t430s/Kconfig
M src/mainboard/lenovo/t430s/acpi/ec.asl
M src/mainboard/lenovo/t520/Kconfig
M src/mainboard/lenovo/t520/acpi/ec.asl
M src/mainboard/lenovo/t520/cmos.default
M src/mainboard/lenovo/t530/Kconfig
M src/mainboard/lenovo/t530/acpi/ec.asl
M src/northbridge/intel/sandybridge/acpi/hostbridge.asl
M src/northbridge/intel/sandybridge/acpi/peg.asl
20 files changed, 679 insertions(+), 15 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/80/28380/12
--
To view, visit https://review.coreboot.org/c/coreboot/+/28380
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I277808d6c1d8bd6e0a267a53f25471597698f8d5
Gerrit-Change-Number: 28380
Gerrit-PatchSet: 12
Gerrit-Owner: Evgeny Zinoviev <me(a)ch1p.com>
Gerrit-Reviewer: Alexander Couzens <lynxis(a)fe80.eu>
Gerrit-Reviewer: Evgeny Zinoviev <me(a)ch1p.com>
Gerrit-Reviewer: Patrick Rudolph <patrick.rudolph(a)9elements.com>
Gerrit-Reviewer: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Name of user not set #1002090
Gerrit-CC: Paul Menzel <paulepanter(a)users.sourceforge.net>
Gerrit-MessageType: newpatchset
Maxim Polyakov has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/32052
Change subject: Doc/mb/asrock/h110m: Fix the links
......................................................................
Doc/mb/asrock/h110m: Fix the links
Change-Id: I7b925518416a4268037efac9060ef911e4ae74cd
Signed-off-by: Maxim Polyakov <max.senia.poliak(a)gmail.com>
---
M Documentation/mainboard/asrock/h110m-dvs.md
1 file changed, 3 insertions(+), 3 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/52/32052/1
diff --git a/Documentation/mainboard/asrock/h110m-dvs.md b/Documentation/mainboard/asrock/h110m-dvs.md
index 5a3bb3e..8ceb7c8 100644
--- a/Documentation/mainboard/asrock/h110m-dvs.md
+++ b/Documentation/mainboard/asrock/h110m-dvs.md
@@ -5,9 +5,9 @@
## Required proprietary blobs
Mainboard is based on Intel Skylake/Kaby Lake processor and H110 Chipset.
-Intel company provides [Firmware Support Package (2.0)](../../Documentation/soc/intel/fsp/index.md)
+Intel company provides [Firmware Support Package (2.0)](../../../Documentation/soc/intel/fsp/index.md)
(intel FSP 2.0) to initialize this generation silicon. Please see this
-[document](../../Documentation/soc/intel/code_development_model/code_development_model.md).
+[document](../../../Documentation/soc/intel/code_development_model/code_development_model.md).
FSP Information:
@@ -62,7 +62,7 @@
the BIOS region of the flash is writable. If you wish to change any
other region, such as the Management Engine or firmware descriptor, then
an external programmer is required (unless you find a clever way around
-the flash protection). More information about this [here](../../Documentation/flash_tutorial/index.md).
+the flash protection). More information about this [here](../../../Documentation/flash_tutorial/index.md).
### External programming
--
To view, visit https://review.coreboot.org/c/coreboot/+/32052
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I7b925518416a4268037efac9060ef911e4ae74cd
Gerrit-Change-Number: 32052
Gerrit-PatchSet: 1
Gerrit-Owner: Maxim Polyakov <max.senia.poliak(a)gmail.com>
Gerrit-MessageType: newchange
Patrick Rudolph has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/11791 )
Change subject: mainboard/lenovo/t410: Add new port
......................................................................
Patch Set 12:
The nehalem code base should be cleaned first, as the mainboard ports contain lot's of unreadable, unnecessary and duplicated code.
--
To view, visit https://review.coreboot.org/c/coreboot/+/11791
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Id9d872e643dd242e925bfb46d18076e6ad100995
Gerrit-Change-Number: 11791
Gerrit-PatchSet: 12
Gerrit-Owner: Nicolas Reinecke <nr(a)das-labor.org>
Gerrit-Reviewer: Alexander Couzens <lynxis(a)fe80.eu>
Gerrit-Reviewer: Martin Roth <martinroth(a)google.com>
Gerrit-Reviewer: Nicolas Reinecke <nr(a)das-labor.org>
Gerrit-Reviewer: Patrick Georgi <pgeorgi(a)google.com>
Gerrit-Reviewer: Patrick Rudolph <patrick.rudolph(a)9elements.com>
Gerrit-Reviewer: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-Reviewer: Paul Menzel <paulepanter(a)users.sourceforge.net>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Eloy
Gerrit-CC: HAOUAS Elyes <ehaouas(a)noos.fr>
Gerrit-CC: Okashi Odayakana <brianblevins316(a)gmail.com>
Gerrit-CC: Peter Lemenkov <lemenkov(a)gmail.com>
Gerrit-Comment-Date: Sat, 06 Apr 2019 13:47:23 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
Gerrit-MessageType: comment