Werner Zeh (werner.zeh(a)siemens.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/15543
-gerrit
commit 58cce65d7508978e124807cee73bb6b156392fbc
Author: Werner Zeh <werner.zeh(a)siemens.com>
Date: Tue Jul 5 07:16:34 2016 +0200
siemens/nc_fpga: Add driver for Siemens NC FPGA
Add driver code to initialize Siemens NC FPGA as PCI device.
Change-Id: I2cb722a60081028ee5a8251f51125f12ed38d824
Signed-off-by: Werner Zeh <werner.zeh(a)siemens.com>
---
src/drivers/siemens/nc_fpga/Kconfig | 3 +
src/drivers/siemens/nc_fpga/Makefile.inc | 16 ++++
src/drivers/siemens/nc_fpga/nc_fpga.c | 137 +++++++++++++++++++++++++++++++
src/drivers/siemens/nc_fpga/nc_fpga.h | 64 +++++++++++++++
4 files changed, 220 insertions(+)
diff --git a/src/drivers/siemens/nc_fpga/Kconfig b/src/drivers/siemens/nc_fpga/Kconfig
new file mode 100644
index 0000000..832446f
--- /dev/null
+++ b/src/drivers/siemens/nc_fpga/Kconfig
@@ -0,0 +1,3 @@
+config DRIVER_SIEMENS_NC_FPGA
+ bool
+ default n
diff --git a/src/drivers/siemens/nc_fpga/Makefile.inc b/src/drivers/siemens/nc_fpga/Makefile.inc
new file mode 100644
index 0000000..724ed6f
--- /dev/null
+++ b/src/drivers/siemens/nc_fpga/Makefile.inc
@@ -0,0 +1,16 @@
+##
+## This file is part of the coreboot project.
+##
+## Copyright 2016 Siemens AG
+##
+## 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.
+##
+
+ramstage-$(CONFIG_DRIVER_SIEMENS_NC_FPGA) += nc_fpga.c
diff --git a/src/drivers/siemens/nc_fpga/nc_fpga.c b/src/drivers/siemens/nc_fpga/nc_fpga.c
new file mode 100644
index 0000000..10656ba
--- /dev/null
+++ b/src/drivers/siemens/nc_fpga/nc_fpga.c
@@ -0,0 +1,137 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2016 Siemens AG.
+ *
+ * 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.
+ */
+
+#include <types.h>
+#include <console/console.h>
+#include <device/pci.h>
+#include <device/pci_ids.h>
+#include <device/pci_ops.h>
+#include <device/pci_def.h>
+#include <string.h>
+#include <delay.h>
+#include <hwilib.h>
+#include "nc_fpga.h"
+
+#define FPGA_SET_PARAM(src, dst) \
+{ \
+ typeof(dst) var; \
+ size_t len = sizeof(var); \
+ if (hwilib_get_field(src, (uint8_t *)&var, len) == len) \
+ dst = (typeof(dst))(var); \
+}
+
+static void init_temp_mon (void *base_adr)
+{
+ uint32_t cc[5], i = 0;
+ uint8_t num = 0;
+ volatile fan_ctrl_t *ctrl = (fan_ctrl_t *)base_adr;
+
+ /* Program sensor delay first. */
+ FPGA_SET_PARAM(FANSensorDelay, ctrl->sensordelay);
+ /* Program correction curve for every used sensor. */
+ if (hwilib_get_field(FANSensorNum, &num, sizeof(num) != sizeof(num)) ||
+ (num == 0) || (num > MAX_NUM_SENSORS))
+ return;
+ for (i = 0; i < num; i ++) {
+ if (hwilib_get_field(FANSensorCfg0 + i, (uint8_t *)&cc[0],
+ sizeof(cc)) == sizeof(cc)) {
+ ctrl->sensorcfg[cc[0]].rmin = cc[1] & 0xffff;
+ ctrl->sensorcfg[cc[0]].rmax = cc[2] & 0xffff;
+ ctrl->sensorcfg[cc[0]].nmin = cc[3] & 0xffff;
+ ctrl->sensorcfg[cc[0]].nmax = cc[4] & 0xffff;
+ }
+ }
+ ctrl->sensornum = num;
+}
+
+static void init_fan_ctrl (void *base_adr)
+{
+ uint8_t mask = 0, freeze_mode = 0, fan_req = 0;
+ volatile fan_ctrl_t *ctrl = (fan_ctrl_t *)base_adr;
+
+ /* Program all needed fields of FAN controller. */
+ FPGA_SET_PARAM(FANSensorSelect, ctrl->sensorselect);
+ FPGA_SET_PARAM(T_Warn, ctrl->t_warn);
+ FPGA_SET_PARAM(T_Crit, ctrl->t_crit);
+ FPGA_SET_PARAM(FANSamplingTime, ctrl->samplingtime);
+ FPGA_SET_PARAM(FANSetPoint, ctrl->setpoint);
+ FPGA_SET_PARAM(FANHystCtrl, ctrl->hystctrl);
+ FPGA_SET_PARAM(FANHystVal, ctrl->hystval);
+ FPGA_SET_PARAM(FANHystThreshold, ctrl->hystthreshold);
+ FPGA_SET_PARAM(FANKp, ctrl->kp);
+ FPGA_SET_PARAM(FANKi, ctrl->ki);
+ FPGA_SET_PARAM(FANKd, ctrl->kd);
+ FPGA_SET_PARAM(FANMaxSpeed, ctrl->fanmax);
+ /* Set freeze and FAN configuration. */
+ if ((hwilib_get_field(FF_FanReq, &fan_req, 1) == 1) &&
+ (hwilib_get_field(FF_FreezeDis, &freeze_mode, 1) == 1)) {
+ if (!fan_req)
+ mask = 1;
+ else if (fan_req && freeze_mode)
+ mask = 2;
+ else
+ mask = 3;
+ ctrl->fanmon = mask << 10;
+ }
+}
+
+/** \brief This function is the driver entry point for the init phase
+ * of the PCI bus allocator. It will initialize all the needed parts
+ * of NC_FPGA.
+ * @param *dev Pointer to the used PCI device
+ * @return void Nothing is given back
+ */
+static void nc_fpga_init(struct device *dev)
+{
+ void *bar0_ptr = NULL;
+ uint8_t cmd_reg;
+ uint32_t cap = 0;
+
+ /* All we need is mapped to BAR 0, get the address. */
+ bar0_ptr = (void *)pci_read_config32(dev, PCI_BASE_ADDRESS_0);
+ cmd_reg = pci_read_config8(dev, PCI_COMMAND);
+ if (!bar0_ptr || !(cmd_reg & PCI_COMMAND_MEMORY))
+ return;
+ /* Ensure this is really a NC FPGA by checking magic register. */
+ if (read32(bar0_ptr + NC_MAGIC_OFFSET) != NC_FPGA_MAGIC)
+ return;
+ /* Open hwinfo block. */
+ if (hwilib_find_blocks("hwinfo.hex") != CB_SUCCESS)
+ return;
+ /* Set up FAN controller and temperature monitor according to */
+ /* capability bits. */
+ cap = read32(bar0_ptr + NC_CAP1_OFFSET);
+ if (cap & (NC_CAP1_TEMP_MON | NC_CAP1_FAN_CTRL))
+ init_temp_mon(bar0_ptr + NC_FANMON_CTRL_OFFSET);
+ if (cap & NC_CAP1_FAN_CTRL)
+ init_fan_ctrl(bar0_ptr + NC_FANMON_CTRL_OFFSET);
+}
+
+static struct device_operations nc_fpga_ops = {
+ .read_resources = pci_dev_read_resources,
+ .set_resources = pci_dev_set_resources,
+ .enable_resources = pci_dev_enable_resources,
+ .init = nc_fpga_init,
+ .scan_bus = 0,
+ .ops_pci = 0,
+};
+
+static const unsigned short nc_fpga_device_ids[] = { 0x4091, 0 };
+
+static const struct pci_driver nc_fpga_driver __pci_driver = {
+ .ops = &nc_fpga_ops,
+ .vendor = 0x110A,
+ .devices = nc_fpga_device_ids,
+};
diff --git a/src/drivers/siemens/nc_fpga/nc_fpga.h b/src/drivers/siemens/nc_fpga/nc_fpga.h
new file mode 100644
index 0000000..886f3dd
--- /dev/null
+++ b/src/drivers/siemens/nc_fpga/nc_fpga.h
@@ -0,0 +1,64 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2016 Siemens AG.
+ *
+ * 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 _SIEMENS_NC_FPGA_H_
+#define _SIEMENS_NC_FPGA_H_
+
+#define NC_MAGIC_OFFSET 0x020
+#define NC_FPGA_MAGIC 0x4E433746
+#define NC_CAP1_OFFSET 0x080
+#define NC_CAP1_FAN_CTRL 0x080
+#define NC_CAP1_TEMP_MON 0x100
+#define NC_FANMON_CTRL_OFFSET 0x400
+
+#define MAX_NUM_SENSORS 4
+
+typedef struct {
+ uint16_t rmin;
+ uint16_t rmax;
+ uint16_t nmin;
+ uint16_t nmax;
+} temp_cc_t;
+
+typedef struct {
+ uint16_t res0;
+ uint8_t sensornum;
+ uint8_t res1;
+ uint32_t sensordelay;
+ uint32_t res2[4];
+ temp_cc_t sensorcfg[8];
+ uint32_t res3[4];
+ uint8_t sensorselect;
+ uint8_t res4[3];
+ uint16_t t_warn;
+ uint16_t t_crit;
+ uint16_t res5;
+ uint8_t res6[2];
+ uint32_t samplingtime;
+ uint16_t setpoint;
+ uint8_t hystctrl;
+ uint8_t res7;
+ uint16_t kp;
+ uint16_t ki;
+ uint16_t kd;
+ uint16_t res8[2];
+ uint16_t fanmax;
+ uint16_t hystval;
+ uint16_t hystthreshold;
+ uint16_t res9[4];
+ uint32_t fanmon;
+} __attribute__ ((packed)) fan_ctrl_t;
+
+#endif /* _SIEMENS_NC_FPGA_H_ */
Werner Zeh (werner.zeh(a)siemens.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/15543
-gerrit
commit 4dd5bb885d99fff8d3bd88dbfcbe418f9f7a6a20
Author: Werner Zeh <werner.zeh(a)siemens.com>
Date: Tue Jul 5 07:16:34 2016 +0200
siemens/nc_fpga: Add driver for Siemens NC FPGA
Add driver code to initialize Siemens NC FPGA as PCI device.
Change-Id: I2cb722a60081028ee5a8251f51125f12ed38d824
Signed-off-by: Werner Zeh <werner.zeh(a)siemens.com>
---
src/drivers/siemens/nc_fpga/Kconfig | 3 +
src/drivers/siemens/nc_fpga/Makefile.inc | 16 ++++
src/drivers/siemens/nc_fpga/nc_fpga.c | 135 +++++++++++++++++++++++++++++++
src/drivers/siemens/nc_fpga/nc_fpga.h | 64 +++++++++++++++
src/mainboard/siemens/mc_bdx1/Kconfig | 1 +
5 files changed, 219 insertions(+)
diff --git a/src/drivers/siemens/nc_fpga/Kconfig b/src/drivers/siemens/nc_fpga/Kconfig
new file mode 100644
index 0000000..832446f
--- /dev/null
+++ b/src/drivers/siemens/nc_fpga/Kconfig
@@ -0,0 +1,3 @@
+config DRIVER_SIEMENS_NC_FPGA
+ bool
+ default n
diff --git a/src/drivers/siemens/nc_fpga/Makefile.inc b/src/drivers/siemens/nc_fpga/Makefile.inc
new file mode 100644
index 0000000..724ed6f
--- /dev/null
+++ b/src/drivers/siemens/nc_fpga/Makefile.inc
@@ -0,0 +1,16 @@
+##
+## This file is part of the coreboot project.
+##
+## Copyright 2016 Siemens AG
+##
+## 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.
+##
+
+ramstage-$(CONFIG_DRIVER_SIEMENS_NC_FPGA) += nc_fpga.c
diff --git a/src/drivers/siemens/nc_fpga/nc_fpga.c b/src/drivers/siemens/nc_fpga/nc_fpga.c
new file mode 100644
index 0000000..eecd281
--- /dev/null
+++ b/src/drivers/siemens/nc_fpga/nc_fpga.c
@@ -0,0 +1,135 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2016 Siemens AG.
+ *
+ * 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.
+ */
+
+#include <types.h>
+#include <console/console.h>
+#include <device/pci.h>
+#include <device/pci_ids.h>
+#include <device/pci_ops.h>
+#include <device/pci_def.h>
+#include <string.h>
+#include <delay.h>
+#include <hwilib.h>
+#include "nc_fpga.h"
+
+#define FPGA_SET_PARAM(src, dst) \
+{ \
+ typeof(dst) var; \
+ size_t len = sizeof(var); \
+ if (hwilib_get_field(src, (uint8_t *)&var, len) == len) \
+ dst = (typeof(dst))(var); \
+}
+
+static void init_temp_mon (void *base_adr)
+{
+ uint32_t cc[5], i = 0;
+ uint8_t num = 0;
+ fan_ctrl_t *ctrl = (fan_ctrl_t *)base_adr;
+
+ /* Program sensor delay first. */
+ FPGA_SET_PARAM(FANSensorDelay, ctrl->sensordelay);
+ /* Program correction curve for every used sensor. */
+ if (hwilib_get_field(FANSensorNum, &num, sizeof(num) != sizeof(num)) ||
+ (num == 0) || (num > MAX_NUM_SENSORS))
+ return;
+ for (i = 0; i < num; i ++) {
+ if (hwilib_get_field(FANSensorCfg0 + i, (uint8_t *)&cc[0],
+ sizeof(cc)) == sizeof(cc)) {
+ ctrl->sensorcfg[cc[0]].rmin = cc[1] & 0xffff;
+ ctrl->sensorcfg[cc[0]].rmax = cc[2] & 0xffff;
+ ctrl->sensorcfg[cc[0]].nmin = cc[3] & 0xffff;
+ ctrl->sensorcfg[cc[0]].nmax = cc[4] & 0xffff;
+ }
+ }
+ ctrl->sensornum = num;
+}
+
+static void init_fan_ctrl (void *base_adr)
+{
+ uint8_t mask = 0, freeze_mode = 0, fan_req = 0;
+ fan_ctrl_t *ctrl = (fan_ctrl_t *)base_adr;
+
+ /* Program all needed fields of FAN controller. */
+ FPGA_SET_PARAM(FANSensorSelect, ctrl->sensorselect);
+ FPGA_SET_PARAM(T_Warn, ctrl->t_warn);
+ FPGA_SET_PARAM(T_Crit, ctrl->t_crit);
+ FPGA_SET_PARAM(FANSamplingTime, ctrl->samplingtime);
+ FPGA_SET_PARAM(FANSetPoint, ctrl->setpoint);
+ FPGA_SET_PARAM(FANHystCtrl, ctrl->hystctrl);
+ FPGA_SET_PARAM(FANHystVal, ctrl->hystval);
+ FPGA_SET_PARAM(FANHystThreshold, ctrl->hystthreshold);
+ FPGA_SET_PARAM(FANKp, ctrl->kp);
+ FPGA_SET_PARAM(FANKi, ctrl->ki);
+ FPGA_SET_PARAM(FANKd, ctrl->kd);
+ FPGA_SET_PARAM(FANMaxSpeed, ctrl->fanmax);
+ /* Set freeze and FAN configuration. */
+ if ((hwilib_get_field(FF_FanReq, &fan_req, 1) == 1) &&
+ (hwilib_get_field(FF_FreezeDis, &freeze_mode, 1) == 1)) {
+ if (!fan_req)
+ mask = 1;
+ else if (fan_req && freeze_mode)
+ mask = 2;
+ else
+ mask = 3;
+ ctrl->fanmon = mask << 10;
+ }
+}
+
+/** \brief This function is the driver entry point for the init phase
+ * of the PCI bus allocator. It will initialize all the needed parts
+ * of NC_FPGA.
+ * @param *dev Pointer to the used PCI device
+ * @return void Nothing is given back
+ */
+static void nc_fpga_init(struct device *dev)
+{
+ void *bar0_ptr = NULL;
+ uint32_t cap = 0;
+
+ /* All we need is mapped to BAR 0, get the address. */
+ bar0_ptr = (void *)pci_read_config32(dev, PCI_BASE_ADDRESS_0);
+ if (!bar0_ptr)
+ return;
+ /* Ensure this is really a NC FPGA by checking magic register. */
+ if (read32(bar0_ptr + NC_MAGIC_OFFSET) != NC_FPGA_MAGIC)
+ return;
+ /* Open hwinfo block. */
+ if (hwilib_find_blocks("hwinfo.hex") != CB_SUCCESS)
+ return;
+ /* Set up FAN controller and temperature monitor according to */
+ /* capability bits. */
+ cap = read32(bar0_ptr + NC_CAP1_OFFSET);
+ if (cap & (NC_CAP1_TEMP_MON | NC_CAP1_FAN_CTRL))
+ init_temp_mon(bar0_ptr + NC_FANMON_CTRL_OFFSET);
+ if (cap & NC_CAP1_FAN_CTRL)
+ init_fan_ctrl(bar0_ptr + NC_FANMON_CTRL_OFFSET);
+}
+
+static struct device_operations nc_fpga_ops = {
+ .read_resources = pci_dev_read_resources,
+ .set_resources = pci_dev_set_resources,
+ .enable_resources = pci_dev_enable_resources,
+ .init = nc_fpga_init,
+ .scan_bus = 0,
+ .ops_pci = 0,
+};
+
+static const unsigned short nc_fpga_device_ids[] = { 0x4091, 0 };
+
+static const struct pci_driver nc_fpga_driver __pci_driver = {
+ .ops = &nc_fpga_ops,
+ .vendor = 0x110A,
+ .devices = nc_fpga_device_ids,
+};
diff --git a/src/drivers/siemens/nc_fpga/nc_fpga.h b/src/drivers/siemens/nc_fpga/nc_fpga.h
new file mode 100644
index 0000000..d8823cb
--- /dev/null
+++ b/src/drivers/siemens/nc_fpga/nc_fpga.h
@@ -0,0 +1,64 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2016 Siemens AG.
+ *
+ * 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 _SIEMENS_NC_FPGA_NC_FPGA_H_
+#define _SIEMENS_NC_FPGA_NC_FPGA_H_
+
+#define NC_MAGIC_OFFSET 0x020
+#define NC_FPGA_MAGIC 0x4E433746
+#define NC_CAP1_OFFSET 0x080
+#define NC_CAP1_FAN_CTRL 0x080
+#define NC_CAP1_TEMP_MON 0x100
+#define NC_FANMON_CTRL_OFFSET 0x400
+
+#define MAX_NUM_SENSORS 4
+
+typedef struct {
+ uint16_t rmin;
+ uint16_t rmax;
+ uint16_t nmin;
+ uint16_t nmax;
+} temp_cc_t;
+
+typedef struct {
+ uint16_t res0;
+ uint8_t sensornum;
+ uint8_t res1;
+ uint32_t sensordelay;
+ uint32_t res2[4];
+ temp_cc_t sensorcfg[8];
+ uint32_t res3[4];
+ uint8_t sensorselect;
+ uint8_t res4[3];
+ uint16_t t_warn;
+ uint16_t t_crit;
+ uint16_t res5;
+ uint8_t res6[2];
+ uint32_t samplingtime;
+ uint16_t setpoint;
+ uint8_t hystctrl;
+ uint8_t res7;
+ uint16_t kp;
+ uint16_t ki;
+ uint16_t kd;
+ uint16_t res8[2];
+ uint16_t fanmax;
+ uint16_t hystval;
+ uint16_t hystthreshold;
+ uint16_t res9[4];
+ uint32_t fanmon;
+} fan_ctrl_t;
+
+#endif /* _SIEMENS_NC_FPGA_NC_FPGA_H_ */
diff --git a/src/mainboard/siemens/mc_bdx1/Kconfig b/src/mainboard/siemens/mc_bdx1/Kconfig
index f947f3d..960fe00 100644
--- a/src/mainboard/siemens/mc_bdx1/Kconfig
+++ b/src/mainboard/siemens/mc_bdx1/Kconfig
@@ -11,6 +11,7 @@ config BOARD_SPECIFIC_OPTIONS
select CBFS_AUTOGEN_ATTRIBUTES
select USE_SIEMENS_HWILIB
select DRIVER_INTEL_I210
+ select DRIVER_SIEMENS_NC_FPGA
config MAINBOARD_DIR
string
the following patch was just integrated into master:
commit 234d246535029e92209ed0371b6cae6506807d0a
Author: Nico Huber <nico.huber(a)secunet.com>
Date: Tue Jan 26 16:10:17 2016 +0100
buildgcc: Add option to bootstrap a host gcc
Bootstrapping gcc is the recommended way if your host gcc's version
doesn't match the gcc version you're going to build. While a build
with an outdated host gcc usually succeeds, an outdated gnat seems
to be a bigger issue.
v3: Some library controversy: gcc likes the libraries it ships with
most but we don't want to install shared libraries. So we build
them static --disable-shared) and install only the minimum
(libgcc, libada, libstdc++). However, as the code of these
libraries might be used to build a shared library we have to
compile them with `-fPIC`.
v4: o Updated getopt strings.
o The workaround for clang (-fbracket-depth=1024) isn't needed
for bootstrapping and also breaks the build, as clang is only
used for the first stage in that case and gcc doesn't know
that option.
So far build tested with `make BUILDGCC_OPTIONS="-b -l c,ada"` on
o Ubuntu 14.04 "Trusty Tahr" (i386)
o Debian 8 "Jessie" (x86_64) (building python (-S) works too)
o current Arch Linux (x86_64)
o FreeBSD 10.3 (x86_64) (with gcc-aux package)
and with clang host compiler, thus C only: `make BUILDGCC_OPTIONS="-b"`
on
o Debian 8 "Jessie" (x86_64)
o FreeBSD 10.3 (x86_64)
v5: Rebased after toolchain updates to GCC 5.3.0 etc.
Build tested with `make BUILDGCC_OPTIONS="-b -l c,ada"` on
o Debian 8 "Jessie" (x86_64)
Change-Id: Icb47d3e9dbafc55737fbc3ce62a084fb9d5f359a
Signed-off-by: Nico Huber <nico.huber(a)secunet.com>
Reviewed-on: https://review.coreboot.org/13473
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi(a)google.com>
See https://review.coreboot.org/13473 for details.
-gerrit
the following patch was just integrated into master:
commit 11ea2b378bc000a4bf9ffd4fa59c27d299b6cbfc
Author: Nico Huber <nico.huber(a)secunet.com>
Date: Tue Jan 26 16:09:31 2016 +0100
buildgcc: Make package build() function more versatile
Refactor build() to make things more flexible:
Add a parameter that tells if we build a package for the host or for a
target architecture. This is just passed to the build_$package()
function and can be used later to take different steps in each case
(e.g. for bootstrapping a host gcc).
Move .success files into the destination directory. That way we can tell
that a package has been built even if the package build directory has
been removed.
Change-Id: I52a7245714a040d11f6e1ac8bdbff8057bb7f0a1
Signed-off-by: Nico Huber <nico.huber(a)secunet.com>
Reviewed-on: https://review.coreboot.org/13471
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi(a)google.com>
See https://review.coreboot.org/13471 for details.
-gerrit
the following patch was just integrated into master:
commit b2213edc658cf71f7dc964cd8281924aedca916e
Author: Werner Zeh <werner.zeh(a)siemens.com>
Date: Thu Jun 30 08:21:17 2016 +0200
siemens/mc_bdx1: Set up MAC address for available i210 MACs
Enable the usage of DRIVER_INTEL_I210 and provide a function to search
for a valid MAC address for all i210 devices using hwilib.
Change-Id: Ic0f4f1579364cf5b0111334a05a8a0926785318b
Signed-off-by: Werner Zeh <werner.zeh(a)siemens.com>
Reviewed-on: https://review.coreboot.org/15517
Tested-by: build bot (Jenkins)
Reviewed-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
See https://review.coreboot.org/15517 for details.
-gerrit
the following patch was just integrated into master:
commit e22d96c0f9c2158e4b120685d773476d635cc41d
Author: Werner Zeh <werner.zeh(a)siemens.com>
Date: Wed Jun 29 07:53:47 2016 +0200
intel/i210: Change API for function mainboard_get_mac_address()
The function mainboard_get_mac_address() is used to get a MAC address
for a given i210 PCI device. Instead of passing pure numbers for PCI
bus, device and function pass the device pointer to this function. In
this way the function can retrieve the needed values itself as well as
have the pointer to the device tree so that PCI path can be evaluated
there.
Change-Id: I2335d995651baa5e23a0448f5f32310dcd394f9b
Signed-off-by: Werner Zeh <werner.zeh(a)siemens.com>
Reviewed-on: https://review.coreboot.org/15516
Tested-by: build bot (Jenkins)
Reviewed-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
See https://review.coreboot.org/15516 for details.
-gerrit