Duncan Laurie (dlaurie(a)google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5193
-gerrit
commit 2cb3e3b828285dc7b390d7af1a2917bb9fa6af3f
Author: Duncan Laurie <dlaurie(a)chromium.org>
Date: Tue Feb 11 10:34:06 2014 -0800
lynxpoint: Do not put SerialIO devices into D3Hot in ACPI mode
Remove the bit of code that was putting the SerialIO devices into
D3Hot state when they are switched from PCI to ACPI mode. Instead,
add the appropriate ACPI Methods to allow the kernel to control the
power state of the device.
The problem seems to be that if the device is put in D3Hot state
before it is switched from PCI to ACPI mode then it does not properly
export its PCI configuration space and cannot be woken back up.
Adding the ACPI Methods for _PS0/_PS3 allows the kernel to transition
the device into D0 state only when it is necessary to communicate with
the device, then put it back into D3Hot state.
Change-Id: I2384ba10bf47750d1c1a35216169ddeee26881df
Signed-off-by: Duncan Laurie <dlaurie(a)chromium.org>
---
src/southbridge/intel/lynxpoint/acpi/serialio.asl | 44 +++++++++++++++++++++++
src/southbridge/intel/lynxpoint/serialio.c | 10 ------
2 files changed, 44 insertions(+), 10 deletions(-)
diff --git a/src/southbridge/intel/lynxpoint/acpi/serialio.asl b/src/southbridge/intel/lynxpoint/acpi/serialio.asl
index 4c0d36b..59228d6 100644
--- a/src/southbridge/intel/lynxpoint/acpi/serialio.asl
+++ b/src/southbridge/intel/lynxpoint/acpi/serialio.asl
@@ -211,6 +211,28 @@ Device (I2C0)
Return (0xF)
}
}
+
+ // Access to PCI Config in ACPI mode
+ OperationRegion (KEYS, SystemMemory, \S1B1, 0x100)
+ Field (KEYS, DWordAcc, NoLock, Preserve)
+ {
+ Offset (0x84),
+ PSAT, 32,
+ }
+
+ // Put controller in D0 state
+ Method (_PS0, 0, Serialized)
+ {
+ And (^PSAT, 0xfffffffc, ^PSAT)
+ Store (^PSAT, Local0)
+ }
+
+ // Put controller in D3Hot state
+ Method (_PS3, 0, Serialized)
+ {
+ Or (^PSAT, 0x00000003, ^PSAT)
+ Store (^PSAT, Local0)
+ }
}
Device (I2C1)
@@ -262,6 +284,28 @@ Device (I2C1)
Return (0xF)
}
}
+
+ // Access to PCI Config in ACPI mode
+ OperationRegion (KEYS, SystemMemory, \S2B1, 0x100)
+ Field (KEYS, DWordAcc, NoLock, Preserve)
+ {
+ Offset (0x84),
+ PSAT, 32,
+ }
+
+ // Put controller in D0 state
+ Method (_PS0, 0, Serialized)
+ {
+ And (^PSAT, 0xfffffffc, ^PSAT)
+ Store (^PSAT, Local0)
+ }
+
+ // Put controller in D3Hot state
+ Method (_PS3, 0, Serialized)
+ {
+ Or (^PSAT, 0x00000003, ^PSAT)
+ Store (^PSAT, Local0)
+ }
}
Device (SPI0)
diff --git a/src/southbridge/intel/lynxpoint/serialio.c b/src/southbridge/intel/lynxpoint/serialio.c
index 8257cc2..75edf5c 100644
--- a/src/southbridge/intel/lynxpoint/serialio.c
+++ b/src/southbridge/intel/lynxpoint/serialio.c
@@ -29,14 +29,6 @@
#include "pch.h"
#include "nvs.h"
-/* Set D3Hot Power State in ACPI mode */
-static void serialio_enable_d3hot(struct device *dev)
-{
- u32 reg32 = pci_read_config32(dev, PCH_PCS);
- reg32 |= PCH_PCS_PS_D3HOT;
- pci_write_config32(dev, PCH_PCS, reg32);
-}
-
/* Enable clock in PCI mode */
static void serialio_enable_clock(struct resource *bar0)
{
@@ -178,8 +170,6 @@ static void serialio_init(struct device *dev)
if (!config->sio_acpi_mode)
serialio_enable_clock(bar0);
- else if (dev->path.pci.devfn != PCI_DEVFN(21, 0))
- serialio_enable_d3hot(dev); /* all but SDMA */
switch (dev->path.pci.devfn) {
case PCI_DEVFN(21, 0): /* SDMA */
Alexandru Gagniuc (mr.nuke.me(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5177
-gerrit
commit 0a92c8a84e246d31884e91339ce4b7a1e1eb4e78
Author: Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
Date: Sun Feb 9 14:50:50 2014 -0600
Revert "boardstatus/towiki: Declare southbridge=northbridge=cpu on SOCs"
This reverts commit b845636ce67f6e7c96bf3fb3008738f596a5d5ce.
This commit changed the board status script to describe all boards in
terms of x86 terminology, such as CPU->southbridge->northbridge.
This terminology does not apply to a number of SoCs, in which the
buses are not connected via successive bridges, and as such it is
misleading and misguided to describe ideas of southbridge and
northbridge for these devices.
Change-Id: I98ba24ee00b816bf20d507c6d313ec2946acaedf
Signed-off-by: Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
---
util/board_status/to-wiki/towiki.sh | 24 +-----------------------
1 file changed, 1 insertion(+), 23 deletions(-)
diff --git a/util/board_status/to-wiki/towiki.sh b/util/board_status/to-wiki/towiki.sh
index 675b5d5..5d2c6b0 100755
--- a/util/board_status/to-wiki/towiki.sh
+++ b/util/board_status/to-wiki/towiki.sh
@@ -224,8 +224,6 @@ EOF
case "$cpu" in
ALLWINNER_A10)
cpu_nice="Allwinner A10"
- northbridge_nice="Allwinner A10"
- southbridge_nice="Allwinner A10"
socket_nice="?";;
AMD_GEODE_*)
cpu_nice="AMD Geode™ ${cpu#AMD_GEODE_}";
@@ -274,32 +272,22 @@ EOF
socket_nice="Socket 939"
;;
AMD_SC520)
- cpu_nice="AMD Élan™ SC520";
- northbridge_nice="AMD Élan™ SC520";
- southbridge_nice="AMD Élan™ SC520";
+ cpu_nice="AMD Élan™SC520";
socket_nice="—";;
ARMLTD_CORTEX_A9)
cpu_nice="ARM Cortex A9";
- northbridge_nice="ARM Cortex A9";
- southbridge_nice="ARM Cortex A9";
socket_nice="?";;
DMP_VORTEX86EX)
cpu_nice="DMP VORTEX86EX";
socket_nice="?";;
SAMSUNG_EXYNOS5420)
cpu_nice="Samsung Exynos 5420";
- northbridge_nice="Samsung Exynos 5420";
- southbridge_nice="Samsung Exynos 5420";
socket_nice="?";;
SAMSUNG_EXYNOS5250)
cpu_nice="Samsung Exynos 5250";
- northbridge_nice="Samsung Exynos 5250";
- southbridge_nice="Samsung Exynos 5250";
socket_nice="?";;
TI_AM335X)
cpu_nice="TI AM335X";
- southbridge_nice="TI AM335X";
- northbridge_nice="TI AM335X";
socket_nice="?";;
INTEL_SLOT_1)
cpu_nice="Intel® Pentium® II/III, Celeron®";
@@ -390,16 +378,6 @@ EOF
socket_nice="$cpu";;
esac
- if [ x"$northbridge_nice" = x ]; then
- if grep 'select SOC_INTEL_BAYTRAIL' "$vendor_board_dir/Kconfig" > /dev/null ; then
- southbridge_nice="Intel® Baytrail"
- northbridge_nice="Intel® Baytrail"
- cpu_nice="Intel® Baytrail"
- socket_nice="—"
- fi
- fi
-
-
echo "|- bgcolor=\"#$color\""
echo "| $vendor_nice"
echo -n "| [[Board:$vendor/$board|$board_nice]]"
Paul Menzel (paulepanter(a)users.sourceforge.net) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5093
-gerrit
commit 8cf9223e84dd3f3bd3dc48e30e5a75ce0e8e6fe5
Author: Paul Menzel <paulepanter(a)users.sourceforge.net>
Date: Sun Feb 2 11:23:26 2014 +0100
payloads/external/SeaBIOS: Upgrade stable from 1.7.2.2 to 1.7.4
On Monday, 12/23/2013, 12:34 -0500 Kevin O'Connor wrote:
> The 1.7.4 version of SeaBIOS has now been released. For more
> information on the release, please see:
>
> http://seabios.org/Releases
>
>
> New in this release:
>
> * Support for obtaining ACPI tables directly from QEMU.
> * Initial support for XHCI USB controllers (initially for QEMU only).
> * Support for booting from "pvscsi" devices on QEMU.
> * Enhanced floppy driver - improved support for real hardware.
> * coreboot cbmem console support.
> * Optional support for using the 9-segment instead of the e-segment
> for local variables.
> * Improved internal timer code and accuracy.
> * SeaVGABIOS improvements
> * Better support for legacy X.org releases with incomplete x86emu
> emulation.
> * Support for using an internal stack to reduce caller's stack
> usage.
> * Back port of new "bochs dispi" interface video modes.
> * Several bug fixes and code cleanups
> * Source code separated out into additional hardware and firmware
> directories.
> * Update to latest version of Kconfig
>
>
> For information on obtaining SeaBIOS, please see:
>
> http://seabios.org/Download
Successfully tested on the Asus M2V-MX SE.
----- [ SeaBIOS rel-1.7.4-0-g96917a8-20140201_152655-my-asus-m2v-mx_se ] -----
Found coreboot cbmem console @ 7dec0400
Found mainboard ASUS M2V-MX SE
Change-Id: I675a50532735b4921a664e4b24d98be17b9a1002
Signed-off-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
---
payloads/external/SeaBIOS/Makefile.inc | 2 +-
src/Kconfig | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/payloads/external/SeaBIOS/Makefile.inc b/payloads/external/SeaBIOS/Makefile.inc
index 84f1515..23b064c 100644
--- a/payloads/external/SeaBIOS/Makefile.inc
+++ b/payloads/external/SeaBIOS/Makefile.inc
@@ -1,5 +1,5 @@
TAG-$(CONFIG_SEABIOS_MASTER)=origin/master
-TAG-$(CONFIG_SEABIOS_STABLE)=88cb66ea542906ffff8a80ef397b9e3adbb33116
+TAG-$(CONFIG_SEABIOS_STABLE)=96917a8ed761f017fc8c72ba3b9181fbac03ac59
unexport KCONFIG_AUTOCONFIG
diff --git a/src/Kconfig b/src/Kconfig
index 31a41ab..291b166 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -617,7 +617,7 @@ choice
depends on PAYLOAD_SEABIOS
config SEABIOS_STABLE
- bool "1.7.2.1"
+ bool "1.7.4"
help
Stable SeaBIOS version
config SEABIOS_MASTER
Alexandru Gagniuc (mr.nuke.me(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/4807
-gerrit
commit 98fd240b92a4d9d7acabfde6817e7cb8f8be5075
Author: Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
Date: Sat Jan 25 09:40:54 2014 -0600
fintek/f81865f: Deprecate the C inclusion of early_serial.c
Including "early_serial.c" directly in romstage.c rather than
compiling and linking it is a remnant of ROMCC. Modernize this by
declaring "early_serial.c" as a Makefile.inc object, and no longer
use it by direct inclusion.
Change-Id: I40a6646fedaad5371983bfc6e6e990c4932ec9bd
Signed-off-by: Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
---
src/mainboard/amd/persimmon/romstage.c | 2 +-
src/mainboard/amd/south_station/romstage.c | 2 +-
src/mainboard/via/epia-m850/Makefile.inc | 22 +----------
src/mainboard/via/epia-m850/romstage.c | 4 +-
src/superio/fintek/f81865f/Makefile.inc | 1 +
src/superio/fintek/f81865f/early_serial.c | 48 +++++++++++++++++++++++
src/superio/fintek/f81865f/f81865f.h | 2 +
src/superio/fintek/f81865f/f81865f_early_serial.c | 47 ----------------------
8 files changed, 56 insertions(+), 72 deletions(-)
diff --git a/src/mainboard/amd/persimmon/romstage.c b/src/mainboard/amd/persimmon/romstage.c
index 98c64ed..e082f60 100644
--- a/src/mainboard/amd/persimmon/romstage.c
+++ b/src/mainboard/amd/persimmon/romstage.c
@@ -31,7 +31,7 @@
#include <cpu/x86/mtrr.h>
#include "agesawrapper.h"
#include "cpu/x86/bist.h"
-#include "superio/fintek/f81865f/f81865f_early_serial.c"
+#include <superio/fintek/f81865f/f81865f.h>
#include "cpu/x86/lapic.h"
#include "drivers/pc80/i8254.c"
#include "drivers/pc80/i8259.c"
diff --git a/src/mainboard/amd/south_station/romstage.c b/src/mainboard/amd/south_station/romstage.c
index 20c973c..5614f88 100644
--- a/src/mainboard/amd/south_station/romstage.c
+++ b/src/mainboard/amd/south_station/romstage.c
@@ -32,7 +32,7 @@
#include <cpu/x86/mtrr.h>
#include "agesawrapper.h"
#include "cpu/x86/bist.h"
-#include "superio/fintek/f81865f/f81865f_early_serial.c"
+#include <superio/fintek/f81865f/f81865f.h>
#include "cpu/x86/lapic.h"
#include <sb_cimx.h>
#include "SBPLATFORM.h"
diff --git a/src/mainboard/via/epia-m850/Makefile.inc b/src/mainboard/via/epia-m850/Makefile.inc
index 9c6d31f..e9a0b69 100644
--- a/src/mainboard/via/epia-m850/Makefile.inc
+++ b/src/mainboard/via/epia-m850/Makefile.inc
@@ -1,21 +1 @@
-##
-## This file is part of the coreboot project.
-##
-## Copyright (C) 2011 Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
-##
-## 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, either version 2 of the License, or
-## (at your option) any later version.
-##
-## 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.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program. If not, see <http://www.gnu.org/licenses/>.
-##
-
-#romstage-y += ./../../../superio/fintek/f81865f/f81865f_early_serial.c
-
+# Nothing interesting here yet
diff --git a/src/mainboard/via/epia-m850/romstage.c b/src/mainboard/via/epia-m850/romstage.c
index 262bee7..1114cf4 100644
--- a/src/mainboard/via/epia-m850/romstage.c
+++ b/src/mainboard/via/epia-m850/romstage.c
@@ -33,11 +33,11 @@
#include <string.h>
#include <timestamp.h>
#include <console/cbmem_console.h>
+#include <superio/fintek/f81865f/f81865f.h>
#include "northbridge/via/vx900/early_vx900.h"
#include "northbridge/via/vx900/raminit.h"
-/* FIXME: This is the only .c include we couldn't get rid of */
-#include "superio/fintek/f81865f/f81865f_early_serial.c"
+
#define SERIAL_DEV PNP_DEV(0x4e, 0x10)
diff --git a/src/superio/fintek/f81865f/Makefile.inc b/src/superio/fintek/f81865f/Makefile.inc
index 1700f7c..8afb286 100644
--- a/src/superio/fintek/f81865f/Makefile.inc
+++ b/src/superio/fintek/f81865f/Makefile.inc
@@ -18,4 +18,5 @@
## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
##
+romstage-$(CONFIG_SUPERIO_FINTEK_F81865F) += early_serial.c
ramstage-$(CONFIG_SUPERIO_FINTEK_F81865F) += superio.c
diff --git a/src/superio/fintek/f81865f/early_serial.c b/src/superio/fintek/f81865f/early_serial.c
new file mode 100644
index 0000000..29b5f9d
--- /dev/null
+++ b/src/superio/fintek/f81865f/early_serial.c
@@ -0,0 +1,48 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2011 Advanced Micro Devices, Inc.
+ *
+ * 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; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/* Pre-RAM driver for the Fintek F81865F/FG Super I/O chip. */
+
+#include <arch/io.h>
+#include <device/pnp.h>
+#include "f81865f.h"
+
+static void pnp_enter_conf_state(device_t dev)
+{
+ u16 port = dev >> 8;
+ outb(0x87, port);
+ outb(0x87, port);
+}
+
+static void pnp_exit_conf_state(device_t dev)
+{
+ u16 port = dev >> 8;
+ outb(0xaa, port);
+}
+
+void f81865f_enable_serial(device_t dev, u16 iobase)
+{
+ pnp_enter_conf_state(dev);
+ pnp_set_logical_device(dev);
+ pnp_set_enable(dev, 0);
+ pnp_set_iobase(dev, PNP_IDX_IO0, iobase);
+ pnp_set_enable(dev, 1);
+ pnp_exit_conf_state(dev);
+}
diff --git a/src/superio/fintek/f81865f/f81865f.h b/src/superio/fintek/f81865f/f81865f.h
index 0c36571..7269b59 100644
--- a/src/superio/fintek/f81865f/f81865f.h
+++ b/src/superio/fintek/f81865f/f81865f.h
@@ -35,4 +35,6 @@
#define F81865F_GPIO 0x06 /* General Purpose I/O (GPIO) */
#define F81865F_PME 0x0a /* Power Management Events (PME) */
+void f81865f_enable_serial(device_t dev, u16 iobase);
+
#endif
diff --git a/src/superio/fintek/f81865f/f81865f_early_serial.c b/src/superio/fintek/f81865f/f81865f_early_serial.c
deleted file mode 100644
index 2989b5f..0000000
--- a/src/superio/fintek/f81865f/f81865f_early_serial.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * Copyright (C) 2011 Advanced Micro Devices, Inc.
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- *
- * 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.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/* Pre-RAM driver for the Fintek F81865F/FG Super I/O chip. */
-
-#include <arch/io.h>
-#include "f81865f.h"
-
-static void pnp_enter_conf_state(device_t dev)
-{
- u16 port = dev >> 8;
- outb(0x87, port);
- outb(0x87, port);
-}
-
-static void pnp_exit_conf_state(device_t dev)
-{
- u16 port = dev >> 8;
- outb(0xaa, port);
-}
-
-static void f81865f_enable_serial(device_t dev, u16 iobase)
-{
- pnp_enter_conf_state(dev);
- pnp_set_logical_device(dev);
- pnp_set_enable(dev, 0);
- pnp_set_iobase(dev, PNP_IDX_IO0, iobase);
- pnp_set_enable(dev, 1);
- pnp_exit_conf_state(dev);
-}