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/5464
-gerrit
commit 9d5f0a879b56602bae0e3078467145b530e39f9d
Author: Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
Date: Sat Apr 5 19:26:56 2014 -0500
hp/pavilion_m6_1035dx: Add ACPI support for lid switch
This is sufficient to at least allow linux to recognize the lid switch
and read its state correctly.
Change-Id: Id5bd92466c72559f263c7ca8d23cbc741377a762
Signed-off-by: Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
---
src/mainboard/hp/pavilion_m6_1035dx/acpi/mainboard.asl | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/mainboard/hp/pavilion_m6_1035dx/acpi/mainboard.asl b/src/mainboard/hp/pavilion_m6_1035dx/acpi/mainboard.asl
index 5c8fc67..47d7872 100644
--- a/src/mainboard/hp/pavilion_m6_1035dx/acpi/mainboard.asl
+++ b/src/mainboard/hp/pavilion_m6_1035dx/acpi/mainboard.asl
@@ -71,3 +71,15 @@
Store("Received PNOT call (probably from EC)", Debug)
/* TODO: Implement this */
}
+
+Scope (\_SB) {
+ Device (LID0)
+ {
+ Name(_HID, EisaId("PNP0C0D"))
+ Method(_LID, 0)
+ {
+ Store (GE22, \LIDS)
+ Return (\LIDS)
+ }
+ }
+}
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/5464
-gerrit
commit d61b1f73b5f23a58414bb5736671bb37ef537182
Author: Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
Date: Sat Apr 5 19:26:56 2014 -0500
hp/pavilion_m6_1035dx: Add ACPI support for lid switch
This is sufficient to at least allow linux to recognize the lid switch
and read its state correctly.
Change-Id: Id5bd92466c72559f263c7ca8d23cbc741377a762
Signed-off-by: Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
---
src/mainboard/hp/pavilion_m6_1035dx/acpi/mainboard.asl | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/mainboard/hp/pavilion_m6_1035dx/acpi/mainboard.asl b/src/mainboard/hp/pavilion_m6_1035dx/acpi/mainboard.asl
index 5c8fc67..47d7872 100644
--- a/src/mainboard/hp/pavilion_m6_1035dx/acpi/mainboard.asl
+++ b/src/mainboard/hp/pavilion_m6_1035dx/acpi/mainboard.asl
@@ -71,3 +71,15 @@
Store("Received PNOT call (probably from EC)", Debug)
/* TODO: Implement this */
}
+
+Scope (\_SB) {
+ Device (LID0)
+ {
+ Name(_HID, EisaId("PNP0C0D"))
+ Method(_LID, 0)
+ {
+ Store (GE22, \LIDS)
+ Return (\LIDS)
+ }
+ }
+}
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/5463
-gerrit
commit b92476f1d610226ab87ed79f921564f806400b81
Author: Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
Date: Sat Apr 5 19:02:28 2014 -0500
hp/pavilion_m6_1035dx: Declare GPIO control block in ACPI
Only the WLAN control pin and the lid switch input are declared, as
those are the only pins whose function is known and tested.
Change-Id: Ia5871882884ba9bb6d63418b34e33f92ead669eb
Signed-off-by: Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
---
src/mainboard/hp/pavilion_m6_1035dx/acpi/mainboard.asl | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/src/mainboard/hp/pavilion_m6_1035dx/acpi/mainboard.asl b/src/mainboard/hp/pavilion_m6_1035dx/acpi/mainboard.asl
index 0ddb038..5c8fc67 100644
--- a/src/mainboard/hp/pavilion_m6_1035dx/acpi/mainboard.asl
+++ b/src/mainboard/hp/pavilion_m6_1035dx/acpi/mainboard.asl
@@ -47,6 +47,17 @@
USBS, 1,
}
+ /* GPIO control block -- hardcoded to 0xfed80100 by AGESA */
+ OperationRegion (GPIO, SystemMemory, 0xfed80100, 0x100)
+ Field (GPIO, ByteAcc, NoLock, Preserve) {
+ Offset (0x39),
+ , 6,
+ GP57, 1, /* out: WLAN control (rf-kill) */
+ Offset (0x76),
+ , 7,
+ GE22, 1, /* General event 22 - connected to lid switch */
+ }
+
/*
* Used by EC code on certain events
*
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/5444
-gerrit
commit a27bb0e085f77f822b76378b5c4489e2e51e5778
Author: Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
Date: Tue Apr 1 16:02:08 2014 -0500
ec/compal/ene932/acpi: Let mainboard define the ACPI lid object
The GP15 ACPI object was used to get the state of the lid. However
GP15 is specific to certain Intel chipsets, and will not always be in
the ACPI namespace. Instead of hardcoding this object, let the
mainboard define it.
Change-Id: I02a2eb3116af61ea5701f84507327aa40218597a
Signed-off-by: Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
---
src/ec/compal/ene932/acpi/ec.asl | 2 +-
src/mainboard/google/parrot/acpi/ec.asl | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/ec/compal/ene932/acpi/ec.asl b/src/ec/compal/ene932/acpi/ec.asl
index cb50a21..a042d75 100644
--- a/src/ec/compal/ene932/acpi/ec.asl
+++ b/src/ec/compal/ene932/acpi/ec.asl
@@ -273,7 +273,7 @@ Device (EC0)
Store (ADPT, \PWRS)
// Initialize LID switch state
- Store (GP15, \LIDS)
+ Store (EC_ACPI_LID_SWITCH_OBJECT, \LIDS)
// Force a read of CPU temperature
Store (CTML, Local0)
diff --git a/src/mainboard/google/parrot/acpi/ec.asl b/src/mainboard/google/parrot/acpi/ec.asl
index 522a0b9..a0ee9d5 100644
--- a/src/mainboard/google/parrot/acpi/ec.asl
+++ b/src/mainboard/google/parrot/acpi/ec.asl
@@ -21,5 +21,8 @@
#include "../ec.h"
#define EC_SCI 23 // GPIO7 << 16 to GPE bit for Runtime SCI
+/* GP15 is defined in the southbridge's ASL */
+#define EC_ACPI_LID_SWITCH_OBJECT GP15
+
/* ACPI code for EC functions */
#include "../../../../ec/compal/ene932/acpi/ec.asl"
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/5445
-gerrit
commit a520bd37a050d9e8e15d1dfa52d6c21416eebffa
Author: Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
Date: Mon Mar 31 16:17:54 2014 -0500
hp/pavilion_m6_1035dx: Add ACPI support for reading battery level
Hook in the EC ASL code. This provides just enough information for the
OS to be able to read the battery information.
EC notifications (_Qxx) do not yet work, and it is unclear if the
issue is in the ACPI code, or if the EC is not set up properly. Thus,
the OS must boot with the battery inserted in order to be able to read
its status.
The _L03 ACPI method is also removed, as the EC SCI uses this event.
Change-Id: I85cbaeb9c77e60bd1c68d928412f897de50c6329
Signed-off-by: Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
---
src/mainboard/hp/pavilion_m6_1035dx/acpi/ec.asl | 14 ++++++++++++++
src/mainboard/hp/pavilion_m6_1035dx/acpi/gpe.asl | 6 ------
.../hp/pavilion_m6_1035dx/acpi/mainboard.asl | 19 +++++++++++++++++++
src/mainboard/hp/pavilion_m6_1035dx/dsdt.asl | 4 ++++
4 files changed, 37 insertions(+), 6 deletions(-)
diff --git a/src/mainboard/hp/pavilion_m6_1035dx/acpi/ec.asl b/src/mainboard/hp/pavilion_m6_1035dx/acpi/ec.asl
new file mode 100644
index 0000000..e0d92fa
--- /dev/null
+++ b/src/mainboard/hp/pavilion_m6_1035dx/acpi/ec.asl
@@ -0,0 +1,14 @@
+/*
+ * Copyright (C) 2014 Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
+ * Subject to the GNU GPL v2, or (at your option) any later version.
+ */
+
+/*
+ * EC bits specific to the mainboard
+ */
+#define EC_SCI 3
+/* TODO: We do not yet know how the LID is connected to the platform */
+#define EC_ACPI_LID_SWITCH_OBJECT Zero
+
+/* ACPI code for EC functions */
+#include <ec/compal/ene932/acpi/ec.asl>
diff --git a/src/mainboard/hp/pavilion_m6_1035dx/acpi/gpe.asl b/src/mainboard/hp/pavilion_m6_1035dx/acpi/gpe.asl
index 40a19d4..a240308 100644
--- a/src/mainboard/hp/pavilion_m6_1035dx/acpi/gpe.asl
+++ b/src/mainboard/hp/pavilion_m6_1035dx/acpi/gpe.asl
@@ -19,12 +19,6 @@
Scope(\_GPE) { /* Start Scope GPE */
- /* General event 3 */
- Method(_L03) {
- /* DBGO("\\_GPE\\_L00\n") */
- Notify(\_SB.PCI0.PWRB, 0x02) /* NOTIFY_DEVICE_WAKE */
- }
-
/* Legacy PM event */
Method(_L08) {
/* DBGO("\\_GPE\\_L08\n") */
diff --git a/src/mainboard/hp/pavilion_m6_1035dx/acpi/mainboard.asl b/src/mainboard/hp/pavilion_m6_1035dx/acpi/mainboard.asl
index 040f069..0ddb038 100644
--- a/src/mainboard/hp/pavilion_m6_1035dx/acpi/mainboard.asl
+++ b/src/mainboard/hp/pavilion_m6_1035dx/acpi/mainboard.asl
@@ -35,9 +35,28 @@
Name(OSV, Ones) /* Assume nothing */
Name(PMOD, One) /* Assume APIC */
+ /* Variables used by EC */
+ /* TODO: These may belong in global non-volatile storage */
+ Name(PWRS, Zero)
+ Name(LIDS, Zero)
+
/* AcpiGpe0Blk */
OperationRegion(GP0B, SystemMemory, 0xfed80814, 0x04)
Field(GP0B, ByteAcc, NoLock, Preserve) {
, 11,
USBS, 1,
}
+
+ /*
+ * Used by EC code on certain events
+ *
+ * From ec/compal/ene932/acpi/ec.asl:
+ * The mainboard must define a PNOT method to handle power state
+ * notifications and Notify CPU device objects to re-evaluate their
+ * _PPC and _CST tables.
+ */
+ Method (PNOT)
+ {
+ Store("Received PNOT call (probably from EC)", Debug)
+ /* TODO: Implement this */
+ }
diff --git a/src/mainboard/hp/pavilion_m6_1035dx/dsdt.asl b/src/mainboard/hp/pavilion_m6_1035dx/dsdt.asl
index ef2ae6f..c1f1933 100644
--- a/src/mainboard/hp/pavilion_m6_1035dx/dsdt.asl
+++ b/src/mainboard/hp/pavilion_m6_1035dx/dsdt.asl
@@ -69,6 +69,10 @@ DefinitionBlock (
} /* End Scope(_SB) */
+ Scope(\_SB.PCI0.LIBR) {
+ #include "acpi/ec.asl"
+ }
+
/* Describe SMBUS for the Southbridge */
#include <southbridge/amd/agesa/hudson/acpi/smbus.asl>
Idwer Vollering (vidwer(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5443
-gerrit
commit b77a3b2c44d373e0a1610da03ec2eb12fba30b60
Author: Idwer Vollering <vidwer(a)gmail.com>
Date: Tue Apr 1 22:47:33 2014 +0000
SeaBIOS: have coreboot pass the choice to run optionroms in parallel
Introduce the tunable CONFIG_SEABIOS_THREAD_OPTIONROMS.
Change-Id: Ifd4d9fca7316eb739ff184e54bdc1cdb0262f0c6
Signed-off-by: Idwer Vollering <vidwer(a)gmail.com>
---
payloads/external/SeaBIOS/Makefile.inc | 4 ++++
src/Kconfig | 11 +++++++++++
src/arch/x86/Makefile.inc | 1 +
3 files changed, 16 insertions(+)
diff --git a/payloads/external/SeaBIOS/Makefile.inc b/payloads/external/SeaBIOS/Makefile.inc
index 23b064c..e8bcaec 100644
--- a/payloads/external/SeaBIOS/Makefile.inc
+++ b/payloads/external/SeaBIOS/Makefile.inc
@@ -21,12 +21,16 @@ config: checkout
echo " CONFIG SeaBIOS $(TAG-y)"
$(MAKE) -C $(OUT)/seabios defconfig OUT=$(OUT)/seabios/out/
echo "CONFIG_COREBOOT=y" >> $(OUT)/seabios/.config
+ifeq ($(CONFIG_SEABIOS_THREAD_OPTIONROMS),y)
+ echo "CONFIG_THREAD_OPTIONROMS=y" >> $(OUT)/seabios/.config
+endif
echo "CONFIG_DEBUG_SERIAL=y" >> $(OUT)/seabios/.config
echo "CONFIG_DEBUG_SERIAL_PORT=0x3f8" >> $(OUT)/seabios/.config
echo "CONFIG_COREBOOT_FLASH=y" >> $(OUT)/seabios/.config
echo "CONFIG_LZMA=y" >> $(OUT)/seabios/.config
echo "CONFIG_FLASH_FLOPPY=y" >> $(OUT)/seabios/.config
echo "CONFIG_VGAHOOKS=y" >> $(OUT)/seabios/.config
+ echo "CONFIG_DEBUG_COREBOOT=y" >> $(OUT)/seabios/.config
# This shows how to force a previously set .config option *off*
#echo "# CONFIG_SMBIOS is not set" >> $(OUT)/seabios/.config
diff --git a/src/Kconfig b/src/Kconfig
index 291b166..7fbeb0f 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -636,6 +636,17 @@ config SEABIOS_PS2_TIMEOUT
after powering on. This specifies how long SeaBIOS will wait for the
keyboard controller to become ready before giving up.
+config SEABIOS_THREAD_OPTIONROMS
+ prompt "Hardware init during option ROM execution" if PAYLOAD_SEABIOS
+ default n
+ bool
+ help
+ Allow hardware init to run in parallel with optionrom execution.
+
+ This can reduce boot time, but can cause some timing
+ variations during option ROM code execution. It is not
+ known if all option ROMs will behave properly with this option.
+
choice
prompt "GRUB2 version"
default GRUB2_MASTER
diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc
index 80e731f..3bf3326 100644
--- a/src/arch/x86/Makefile.inc
+++ b/src/arch/x86/Makefile.inc
@@ -448,6 +448,7 @@ seabios:
AS="$(AS)" CPP="$(CPP)" \
CONFIG_SEABIOS_MASTER=$(CONFIG_SEABIOS_MASTER) \
CONFIG_SEABIOS_STABLE=$(CONFIG_SEABIOS_STABLE) \
+ CONFIG_SEABIOS_THREAD_OPTIONROMS=$(CONFIG_SEABIOS_THREAD_OPTIONROMS) \
OUT=$(abspath $(obj)) IASL="$(IASL)"
filo: