Nico Huber (nico.huber(a)secunet.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3596
-gerrit
commit c02744c1810713747bed3665f83341d289b50645
Author: Nico Huber <nico.huber(a)secunet.com>
Date: Wed Jul 3 15:39:47 2013 +0200
Update help text for flash lock
Update the help text for the FLASHROM_LOCKDOWN option to reflect the
current state of supported platforms.
Change-Id: I9f8b13887b188d973a07b46b9948de5f5ad4435e
Signed-off-by: Nico Huber <nico.huber(a)secunet.com>
---
Config.in | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/Config.in b/Config.in
index cd9fdda..08ac0ec 100644
--- a/Config.in
+++ b/Config.in
@@ -191,7 +191,12 @@ config FLASHROM_LOCKDOWN
Enable system flash memory write protections and lock them down prior
starting the kernel. Flash memory lockdown can be disabled per boot
entry with the new command 'flashrom_unlock'.
- NOTE: Only supported on selected Intel hardware, ICH7 so far.
+
+ NOTE: Only supported on selected hardware:
+
+ o Intel ICH7 (FWH)
+ o Intel ICH9 (FWH + SPI)
+ o AMD SB600 (SPI by locking the flash chip itself)
endmenu
Nico Huber (nico.huber(a)secunet.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3594
-gerrit
commit 2b73722bf3071c2d01d099e5a7cc488b5bf17ece
Author: Nico Huber <nico.huber(a)secunet.com>
Date: Mon Jul 1 16:02:36 2013 +0200
sandybridge: Add option to lock SPI regions on resume
Add an option to mark all SPI regions write protected on each S3 resume.
We were used to lock the SPI interface in the payload which isn't run on
the resume path. So we have to do it here.
For the write protection to be effective, all write opcodes in the
opmenu have to be marked correctly (as write operations) and the whole
SPI interface has to be locked. Both is already done.
Change-Id: I5c268ae8850642f5e82f18c28c71cf1ae248dbff
Signed-off-by: Nico Huber <nico.huber(a)secunet.com>
---
src/southbridge/intel/bd82x6x/Kconfig | 10 ++++++++++
src/southbridge/intel/bd82x6x/finalize.c | 8 ++++++++
2 files changed, 18 insertions(+)
diff --git a/src/southbridge/intel/bd82x6x/Kconfig b/src/southbridge/intel/bd82x6x/Kconfig
index 0be875e..e6a4fc8 100644
--- a/src/southbridge/intel/bd82x6x/Kconfig
+++ b/src/southbridge/intel/bd82x6x/Kconfig
@@ -148,4 +148,14 @@ config LOCK_MANAGEMENT_ENGINE
If unsure, say N.
+config LOCK_SPI_ON_RESUME
+ bool "Lock all flash ROM sections on S3 resume"
+ default n
+ help
+ If the flash ROM shall be protected against write accesses from the
+ operating system (OS), the locking procedure has to be repeated after
+ each resume from S3. Select this if you never want to update the flash
+ ROM from within your OS. Notice: Even with this option, the write lock
+ has still to be enabled on the normal boot path (e.g. by the payload).
+
endif
diff --git a/src/southbridge/intel/bd82x6x/finalize.c b/src/southbridge/intel/bd82x6x/finalize.c
index bcc2f3d..331e26c 100644
--- a/src/southbridge/intel/bd82x6x/finalize.c
+++ b/src/southbridge/intel/bd82x6x/finalize.c
@@ -26,6 +26,14 @@
void intel_pch_finalize_smm(void)
{
+#if CONFIG_LOCK_SPI_ON_RESUME
+ /* Copy flash regions from FREG0-4 to PR0-4
+ and enable write protection bit31 */
+ int i;
+ for (i = 0; i < 20; i += 4)
+ RCBA32(0x3874 + i) = RCBA32(0x3854 + i) | (1 << 31);
+#endif
+
/* Set SPI opcode menu */
RCBA16(0x3894) = SPI_OPPREFIX;
RCBA16(0x3896) = SPI_OPTYPE;
Nico Huber (nico.huber(a)secunet.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3593
-gerrit
commit f53cdafb2e9a408c05ad5de400dc8da3258e630f
Author: Nico Huber <nico.huber(a)secunet.com>
Date: Tue Jul 2 16:39:28 2013 +0200
lint: Use temporary build directory
`util/lint/lint-stable-002-build-dir-handling` always overwrites your
current `config.h` and `auto.conf` when the pre-commit hook is run. It
can be very confusing when your configuration is suddenly broken. So fix
it by not using the default build directory.
Change-Id: If2bbc97ac2f12a8203a3769d813386a023f93dd6
Signed-off-by: Nico Huber <nico.huber(a)secunet.com>
---
util/lint/lint-stable-002-build-dir-handling | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/util/lint/lint-stable-002-build-dir-handling b/util/lint/lint-stable-002-build-dir-handling
index 2dad8a6..0954cd4 100755
--- a/util/lint/lint-stable-002-build-dir-handling
+++ b/util/lint/lint-stable-002-build-dir-handling
@@ -53,9 +53,10 @@ if [ "$MAKE" = "" ]; then
fi
# prepare a config to use
+TMPOBJ=`mktemp -d .tmpobj.XXXXXX`
TMPCONFIG=`mktemp .tmpconfig.XXXXXX`
rm -f $TMPCONFIG
-$MAKE DOTCONFIG=$TMPCONFIG allyesconfig >/dev/null
+$MAKE obj=$TMPOBJ DOTCONFIG=$TMPCONFIG allyesconfig >/dev/null
# look up parent directory
CURRENTDIR=`pwd -P`
@@ -66,5 +67,5 @@ compare_output "`run_printall ../obj`" "$PARENTDIR/obj/.../static.c $PARENTDIR/o
compare_output "`run_printall /tmp`" "/tmp/.../static.c /tmp/.../static.c /tmp/.../static.romstage.o"
compare_output "`run_printall /../tmp`" "/tmp/.../static.c /tmp/.../static.c /tmp/.../static.romstage.o"
-rm -f $TMPCONFIG
+rm -rf $TMPCONFIG $TMPOBJ
Paul Menzel (paulepanter(a)users.sourceforge.net) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2942
-gerrit
commit 699013f1ae635e01ee4244070b4cc763134aea71
Author: Paul Menzel <paulepanter(a)users.sourceforge.net>
Date: Thu Mar 28 14:59:34 2013 +0100
Winbond W83627HF: ACPI: Make `AddressMax` a multiple of `AddressAlignment`
When hooking the ASL into the DSDT of the ASRock E350M1, the build fails
with the following error.
$ LANG=C make
[…]
IASL build/mainboard/asrock/e350m1/dsdt.ramstage.o
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20121114-32 [Apr 22 2013]
Copyright (c) 2000 - 2012 Intel Corporation
dsdt.ramstage.asl 1779: CreateByteField (Arg0, IRQ0._INT, IRQL)
Warning 1126 - ResourceTag larger than Field ^ (Size mismatch, Tag: 16 bits, Field: 8 bits)
dsdt.ramstage.asl 1917: IO (Decode16, 0x0100, 0x0FFC, 0x08, 0x08)
Error 4001 - ^ Must be a multiple of alignment/granularity value
dsdt.ramstage.asl 2051: CreateByteField (Arg0, IRQX._INT, IRQL)
Warning 1126 - ResourceTag larger than Field ^ (Size mismatch, Tag: 16 bits, Field: 8 bits)
dsdt.ramstage.asl 2160: CreateByteField (Arg0, IRQX._INT, IRQL)
Warning 1126 - ResourceTag larger than Field ^ (Size mismatch, Tag: 16 bits, Field: 8 bits)
dsdt.ramstage.asl 2269: CreateByteField (Arg0, IRQX._INT, IRQL)
Warning 1126 - ResourceTag larger than Field ^ (Size mismatch, Tag: 16 bits, Field: 8 bits)
dsdt.ramstage.asl 2341: CreateByteField (Arg0, IRQX._INT, IRQL)
Warning 1126 - ResourceTag larger than Field ^ (Size mismatch, Tag: 16 bits, Field: 8 bits)
dsdt.ramstage.asl 2424: CreateByteField (Arg0, IRQX._INT, IRQL)
Warning 1126 - ResourceTag larger than Field ^ (Size mismatch, Tag: 16 bits, Field: 8 bits)
dsdt.ramstage.asl 2491: CreateByteField (Arg0, IRQX._INT, IRQL)
Warning 1126 - ResourceTag larger than Field ^ (Size mismatch, Tag: 16 bits, Field: 8 bits)
ASL Input: dsdt.ramstage.asl - 2996 lines, 59383 bytes, 1610 keywords
Hex Dump: dsdt.ramstage.hex - 160002 bytes
Compilation complete. 1 Errors, 7 Warnings, 0 Remarks, 553 Optimizations
make: *** [build/mainboard/asrock/e350m1/dsdt.ramstage.o] Error 255
[…]
According to the ACPI specification the maximum acceptable starting
address `AddressMax` has to be a multiple of the alignment
granularity for the I/O address. Citing ACPI specification 4.0a,
page 612 [1].
18.5.56 IO (IO Resource Descriptor Macro)
### Syntax
IO (Decode, AddressMin, AddressMax, AddressAlignment, RangeLength, DescriptorName) => Buffer
### Argument
[…]
AddressMax evaluates to a 16-bit integer that specifies the
maximum acceptable starting address for the I/O range. It must
be an even multiple of AddressAlignment. The field
DescriptorName._MAX is automatically created to refer to this
portion of the resource descriptor.
Using address 0x0FF8, a multiple of 0x08, instead of 0x0FFC, fixes the
error.
[1] http://acpi.info/DOWNLOADS/ACPIspec40a.pdf
Change-Id: I272e09d091149791f2867b1d06e4fc27bc1bb2cd
Signed-off-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
---
src/superio/winbond/w83627hf/acpi/superio.asl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/superio/winbond/w83627hf/acpi/superio.asl b/src/superio/winbond/w83627hf/acpi/superio.asl
index ff95dfc..67cf67a 100644
--- a/src/superio/winbond/w83627hf/acpi/superio.asl
+++ b/src/superio/winbond/w83627hf/acpi/superio.asl
@@ -559,7 +559,7 @@ Device(SIO) {
/* Any configurable address (EPP mode) */
StartDependentFn (2,0)
{
- IO (Decode16, 0x0100, 0x0FFC, 0x08, 0x08)
+ IO (Decode16, 0x0100, 0x0FF8, 0x08, 0x08)
IRQNoFlags () {3,4,5,7,9,10,11,12}
}
/* Any configurable address (No EPP mode) */
Paul Menzel (paulepanter(a)users.sourceforge.net) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2943
-gerrit
commit e9f6c9e759c97dfb0a188b4b4001e4e608765165
Author: Paul Menzel <paulepanter(a)users.sourceforge.net>
Date: Thu Mar 28 14:05:45 2013 +0100
ASRock E350M1: Include ASL file of Winbond W83627HF in the DSDT
Unfortunately there are still some problems, but note that the
ASRock E350M1 actually has a Nuvoton NCT6775F, which is supposed
to be compatible though [1]. At least Scott chose it in its
`devicetree.cb`.
Hooking up this ACPI snippet, under Linux, serial does not work
anymore. It works fine for coreboot, SeaBIOS and GRUB.
$ grep -i -e 8042 -e kbd -e mpu -e pnp /tmp/kern.log | cut -d " " -f 7-
[ 0.210990] acpi PNP0A08:00: Requesting ACPI _OSC control (0x1d)
[ 0.211079] acpi PNP0A08:00: ACPI _OSC control (0x1d) granted
[ 0.215591] calling pnp_init+0x0/0xf @ 1
[ 0.215616] initcall pnp_init+0x0/0xf returned 0 after 0 usecs
[ 0.222362] calling pnp_system_init+0x0/0xa @ 1
[ 0.222399] initcall pnp_system_init+0x0/0xa returned 0 after 29 usecs
[ 0.222404] calling pnpacpi_init+0x0/0x77 @ 1
[ 0.222407] pnp: PnP ACPI init
[ 0.222438] ACPI: bus type PNP registered
[ 0.223012] pnp 00:00: Plug and Play ACPI device, IDs PNP0b00 (active)
[ 0.223156] pnp 00:01: Plug and Play ACPI device, IDs PNP0800 (active)
[ 0.223186] pnp 00:02: [dma 4]
[ 0.223233] pnp 00:02: Plug and Play ACPI device, IDs PNP0200 (active)
[ 0.223363] pnp 00:03: Plug and Play ACPI device, IDs PNP0c04 (active)
[ 0.223718] pnp 00:04: Plug and Play ACPI device, IDs PNP0a05 (active)
[ 0.223994] pnp 00:05: Plug and Play ACPI device, IDs PNP0700 (disabled)
[ 0.224304] pnp 00:06: Plug and Play ACPI device, IDs PNP0400 (disabled)
[ 0.224581] pnp 00:07: Plug and Play ACPI device, IDs PNP0501 (disabled)
[ 0.224886] pnp 00:08: Plug and Play ACPI device, IDs PNP0501 (disabled)
[ 0.225336] pnp 00:09: Plug and Play ACPI device, IDs PNP0303 (disabled)
[ 0.225610] pnp 00:0a: Plug and Play ACPI device, IDs PNP0f13 (disabled)
[ 0.225849] pnp 00:0b: Plug and Play ACPI device, IDs PNPb02f (disabled)
[ 0.226083] pnp 00:0c: Plug and Play ACPI device, IDs PNPb006 (disabled)
[ 0.226339] system 00:0d: Plug and Play ACPI device, IDs PNP0c02 (disabled)
[ 0.226357] pnp: PnP ACPI: found 14 devices
[ 0.226360] ACPI: bus type PNP unregistered
[ 0.226437] initcall pnpacpi_init+0x0/0x77 returned 0 after 3930 usecs
[ 0.226443] calling pnpbios_init+0x0/0x31c @ 1
[ 0.226448] PnPBIOS: Disabled by ACPI PNP
[ 0.226455] initcall pnpbios_init+0x0/0x31c returned -19 after 5 usecs
[ 0.921532] calling pnpbios_thread_init+0x0/0x54 @ 1
[ 0.921540] initcall pnpbios_thread_init+0x0/0x54 returned 0 after 0 usecs
[ 0.921545] calling isapnp_init+0x0/0x5c6 @ 1
[ 0.921549] isapnp: ISA Plug & Play support disabled
[ 0.921555] initcall isapnp_init+0x0/0x5c6 returned 0 after 3 usecs
[ 0.947430] calling i8042_init+0x0/0x383 @ 1
[ 0.947540] i8042 kbd 00:09: [irq 1]
[ 0.947549] i8042 kbd 00:09: unable to assign resources
[ 2.552437] i8042 kbd: probe of 00:09 failed with error -16
[ 2.552657] i8042 aux 00:0a: [irq 12]
[ 2.553260] i8042 aux 00:0a: activated
[ 2.553283] i8042: PNP: PS/2 Controller [PNP0f13:PS2M] at 0x0,0x0 irq 12
[ 2.553287] i8042: PNP: PS/2 controller has invalid data port 0x0; using default 0x60
[ 2.553290] i8042: PNP: PS/2 controller has invalid command port 0x0; using default 0x64
[ 2.553293] i8042: PNP: PS/2 controller doesn't have KBD irq; using default 1
[ 2.807764] serio: i8042 KBD port at 0x60,0x64 irq 1
[ 2.807869] initcall i8042_init+0x0/0x383 returned 0 after 1816824 usecs
[ 2.808424] calling atkbd_init+0x0/0x1b @ 1
[ 2.808474] initcall atkbd_init+0x0/0x1b returned 0 after 42 usecs
[ 2.808479] calling xenkbd_init+0x0/0x28 @ 1
[ 2.808484] initcall xenkbd_init+0x0/0x28 returned -19 after 0 usecs
[ 68.133211] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input2
[ 71.322602] calling alsa_mpu401_uart_init+0x0/0x1000 [snd_mpu401_uart] @ 697
[ 71.322615] initcall alsa_mpu401_uart_init+0x0/0x1000 [snd_mpu401_uart] returned 0 after 0 usecs
[ 73.965508] calling alsa_card_mpu401_init+0x0/0x1000 [snd_mpu401] @ 697
[ 73.965574] mpu401: probe of 00:0c failed with error -16
[ 73.965590] MPU-401 device not found or device busy
[ 75.509538] initcall alsa_card_mpu401_init+0x0/0x1000 [snd_mpu401] returned -19 after 1507823 usecs
[1] https://www.kernel.org/doc/Documentation/hwmon/w83627ehf
Change-Id: I82c98f16e6879d47594fcf90140a827b98a39a7f
Signed-off-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
---
src/mainboard/asrock/e350m1/dsdt.asl | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/mainboard/asrock/e350m1/dsdt.asl b/src/mainboard/asrock/e350m1/dsdt.asl
index 0620360..f64ea95 100644
--- a/src/mainboard/asrock/e350m1/dsdt.asl
+++ b/src/mainboard/asrock/e350m1/dsdt.asl
@@ -48,6 +48,9 @@ DefinitionBlock (
#include <southbridge/amd/cimx/sb800/acpi/fch.asl>
}
+
+ #include <superio/winbond/w83627hf/acpi/superio.asl>
+
} /* End Scope(_SB) */
/* Contains the supported sleep states for this chipset */
the following patch was just integrated into master:
commit abe6847cd21b553dd66fcb0540de166f82ebaf00
Author: Paul Menzel <paulepanter(a)users.sourceforge.net>
Date: Wed May 8 17:08:55 2013 +0200
Intel GM45, 945, Sandy Bridge: Unify `delay.c` and `udelay.c`
Use the same indentation, comment placement and spelling of words.
Run `indent -linux …`.
Change-Id: Id5765c45b28058cdd50ee4c0a1fd9f645ad7f3f8
Signed-off-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
Reviewed-on: http://review.coreboot.org/3220
Reviewed-by: Nico Huber <nico.huber(a)secunet.com>
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich(a)gmail.com>
See http://review.coreboot.org/3220 for details.
-gerrit