Nico Huber has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/31664
Change subject: cpu/intel/model_1067x: Implement microcode loading
......................................................................
cpu/intel/model_1067x: Implement microcode loading
We load it once for the BSP in advance and let the MP init handle it for
the APs. The BSP load could also be done earlier, e.g. before CAR setup,
to align with other platforms.
TEST=Booted ThinkPad X200s and checked log: Microcode is loaded
correctly on the BSP before SMM setup, and reported to be up
to date on all cores after.
Change-Id: I85adb22a608ca3e7355bd486ebba52ec8fdd396c
Signed-off-by: Nico Huber <nico.h(a)gmx.de>
---
M src/cpu/intel/model_1067x/mp_init.c
1 file changed, 10 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/64/31664/1
diff --git a/src/cpu/intel/model_1067x/mp_init.c b/src/cpu/intel/model_1067x/mp_init.c
index acd56c8..b8b3159 100644
--- a/src/cpu/intel/model_1067x/mp_init.c
+++ b/src/cpu/intel/model_1067x/mp_init.c
@@ -42,6 +42,12 @@
return cores;
}
+static void get_microcode_info(const void **microcode, int *parallel)
+{
+ *microcode = microcode_patch;
+ *parallel = 1;
+}
+
/* the SMRR enable and lock bit need to be set in IA32_FEATURE_CONTROL
to enable SMRR so configure IA32_FEATURE_CONTROL early on */
static void pre_mp_smm_init(void)
@@ -98,6 +104,7 @@
.pre_mp_init = pre_mp_init,
.get_cpu_count = get_cpu_count,
.get_smm_info = smm_info,
+ .get_microcode_info = get_microcode_info,
.pre_mp_smm_init = pre_mp_smm_init,
.per_cpu_smm_trigger = per_cpu_smm_trigger,
.relocation_handler = smm_relocation_handler,
@@ -106,6 +113,9 @@
void bsp_init_and_start_aps(struct bus *cpu_bus)
{
+ microcode_patch = intel_microcode_find();
+ intel_microcode_load_unlocked(microcode_patch);
+
if (mp_init_with_smm(cpu_bus, &mp_ops))
printk(BIOS_ERR, "MP initialization failure.\n");
}
--
To view, visit https://review.coreboot.org/c/coreboot/+/31664
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I85adb22a608ca3e7355bd486ebba52ec8fdd396c
Gerrit-Change-Number: 31664
Gerrit-PatchSet: 1
Gerrit-Owner: Nico Huber <nico.h(a)gmx.de>
Gerrit-MessageType: newchange
Duncan Laurie has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/31659
Change subject: mb/google/sarien: Remove DRIVERS_PS2_KEYBOARD
......................................................................
mb/google/sarien: Remove DRIVERS_PS2_KEYBOARD
In order to prevent keyboard keys pressed at boot from causing issues
in the payload remove the PS2 keyboard driver so it does not get
initialized until it is needed in libpayload.
BUG=b:126633269
TEST=boot on sarien while pressing keys and ensure libpayload and/or
the kernel does not have any issues initializing the keyboard.
Change-Id: I765e808f0d2589cf23c0349798a07e2706a2a7a4
Signed-off-by: Duncan Laurie <dlaurie(a)google.com>
---
M src/mainboard/google/sarien/Kconfig
1 file changed, 0 insertions(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/59/31659/1
diff --git a/src/mainboard/google/sarien/Kconfig b/src/mainboard/google/sarien/Kconfig
index a976d36..ce6b810 100644
--- a/src/mainboard/google/sarien/Kconfig
+++ b/src/mainboard/google/sarien/Kconfig
@@ -5,7 +5,6 @@
select DRIVERS_I2C_GENERIC
select DRIVERS_I2C_HID
select DRIVERS_SPI_ACPI
- select DRIVERS_PS2_KEYBOARD
select DRIVERS_USB_ACPI
select EC_GOOGLE_WILCO
select GENERIC_SPD_BIN
--
To view, visit https://review.coreboot.org/c/coreboot/+/31659
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I765e808f0d2589cf23c0349798a07e2706a2a7a4
Gerrit-Change-Number: 31659
Gerrit-PatchSet: 1
Gerrit-Owner: Duncan Laurie <dlaurie(a)chromium.org>
Gerrit-MessageType: newchange
Duncan Laurie has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/31658
Change subject: libpayload: i8042: Only test PS/2 AUX port when enabled
......................................................................
libpayload: i8042: Only test PS/2 AUX port when enabled
If a PS/2 AUX device is not present then the AUX test command
during i8042_probe() will time out and add ~500ms to the boot time.
In order to avoid this only test the PS/2 AUX port if
CONFIG_LP_PC_MOUSE is enabled.
BUG=b:126633269
TEST=boot on device without AUX port and check that this command
does not get executed, saving ~500ms at boot.
Change-Id: I2ebdecc66933bd33d320b17aa4608caf4aaf54aa
Signed-off-by: Duncan Laurie <dlaurie(a)google.com>
---
M payloads/libpayload/drivers/i8042/i8042.c
1 file changed, 4 insertions(+), 2 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/58/31658/1
diff --git a/payloads/libpayload/drivers/i8042/i8042.c b/payloads/libpayload/drivers/i8042/i8042.c
index 69740d9..4cdd0be 100644
--- a/payloads/libpayload/drivers/i8042/i8042.c
+++ b/payloads/libpayload/drivers/i8042/i8042.c
@@ -229,8 +229,10 @@
}
/* Test secondary port */
- if (i8042_cmd_with_response(I8042_CMD_AUX_TEST) == 0)
- aux_fifo = fifo_init(4 * 32);
+ if (IS_ENABLED(CONFIG_LP_PC_MOUSE)) {
+ if (i8042_cmd_with_response(I8042_CMD_AUX_TEST) == 0)
+ aux_fifo = fifo_init(4 * 32);
+ }
/* Test first PS/2 port */
if (i8042_cmd_with_response(I8042_CMD_KB_TEST) == 0)
--
To view, visit https://review.coreboot.org/c/coreboot/+/31658
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I2ebdecc66933bd33d320b17aa4608caf4aaf54aa
Gerrit-Change-Number: 31658
Gerrit-PatchSet: 1
Gerrit-Owner: Duncan Laurie <dlaurie(a)chromium.org>
Gerrit-MessageType: newchange
Duncan Laurie has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/31657
Change subject: libpayload: keyboard: Add option to ignore failures during init
......................................................................
libpayload: keyboard: Add option to ignore failures during init
If keys are pressed at boot some keyboard controllers will not
properly respond with an ACK to commands, which results in the
keyboard_init function aborting before it adds the keyboard to the
input device list.
This same keyboard controller will manage to properly return keyboard
data when keys are pressed later, so it is possible for it to be
functional in the payload even if it does not respond properly to
every command during initialization.
In order to allow payloads to use the keyboard when this happens a
new Kconfig option is added to ignore the keyboard ACK response and
always add the keyboard to the input device list. This option is
disabled by default and must be enabled by the specific boards that
need it.
BUG=b:126633269
TEST=boot on device with this controller and press keys during boot
and see that the keyboard is still functional in the payload.
Change-Id: Icc6053f99804f1b57d785cb04235b5c4b8d5426f
Signed-off-by: Duncan Laurie <dlaurie(a)google.com>
---
M payloads/libpayload/Kconfig
M payloads/libpayload/drivers/i8042/keyboard.c
2 files changed, 7 insertions(+), 3 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/57/31657/1
diff --git a/payloads/libpayload/Kconfig b/payloads/libpayload/Kconfig
index a79269f..6aa5b61 100644
--- a/payloads/libpayload/Kconfig
+++ b/payloads/libpayload/Kconfig
@@ -344,6 +344,10 @@
default y if ARCH_X86 # uses IO
default n
+config PC_KEYBOARD_IGNORE_FAILURE
+ bool "Ignore keyboard failures during init and always add input device"
+ default n
+
config PC_KEYBOARD_LAYOUT_US
bool "English (US) keyboard layout"
depends on PC_KEYBOARD
diff --git a/payloads/libpayload/drivers/i8042/keyboard.c b/payloads/libpayload/drivers/i8042/keyboard.c
index 062aec2..918cafa 100644
--- a/payloads/libpayload/drivers/i8042/keyboard.c
+++ b/payloads/libpayload/drivers/i8042/keyboard.c
@@ -309,16 +309,16 @@
/* Set scancode set 1 */
ret = keyboard_cmd(I8042_KBCMD_SET_SCANCODE);
- if (!ret)
+ if (!ret && !IS_ENABLED(CONFIG_LP_PC_KEYBOARD_IGNORE_FAILURE))
return;
ret = keyboard_cmd(I8042_SCANCODE_SET_1);
- if (!ret)
+ if (!ret && !IS_ENABLED(CONFIG_LP_PC_KEYBOARD_IGNORE_FAILURE))
return;
/* Enable scanning */
ret = keyboard_cmd(I8042_KBCMD_EN);
- if (!ret)
+ if (!ret && !IS_ENABLED(CONFIG_LP_PC_KEYBOARD_IGNORE_FAILURE))
return;
console_add_input_driver(&cons);
--
To view, visit https://review.coreboot.org/c/coreboot/+/31657
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Icc6053f99804f1b57d785cb04235b5c4b8d5426f
Gerrit-Change-Number: 31657
Gerrit-PatchSet: 1
Gerrit-Owner: Duncan Laurie <dlaurie(a)chromium.org>
Gerrit-MessageType: newchange
Mario Scheithauer has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/31639
Change subject: sb/intel/common/firmware: Add an option to use IFDTOOL
......................................................................
sb/intel/common/firmware: Add an option to use IFDTOOL
This patch makes the use of the IFDTOOL to modify the flash descriptor
region selectable via a Kconfig option. This option is selected by
default so that nothing changes for all mainboards that have activate
'Lock ME/TXE section'. If you don't want to use IFDTOOL for modification
of flash descriptor, disable it. In this case, the preset values are
retained.
Change-Id: I46ec6339008edcc78fe76682eed5714f85354937
Signed-off-by: Mario Scheithauer <mario.scheithauer(a)siemens.com>
---
M src/southbridge/intel/common/firmware/Kconfig
M src/southbridge/intel/common/firmware/Makefile.inc
2 files changed, 21 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/39/31639/1
diff --git a/src/southbridge/intel/common/firmware/Kconfig b/src/southbridge/intel/common/firmware/Kconfig
index 31a3df3..7a1bd82 100644
--- a/src/southbridge/intel/common/firmware/Kconfig
+++ b/src/southbridge/intel/common/firmware/Kconfig
@@ -141,6 +141,18 @@
depends on HAVE_EC_BIN
default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/ec.bin"
+config MOD_INTEL_FLASH_DESCRIPTOR
+ bool "Use IFDTOOL to modifiy descriptor region"
+ default y
+ help
+ Read and write access permissions to different regions in the flash
+ can be controlled via dedicated bitfields in the flash descriptor.
+ These permissions can be modified with the Intel Flash Descriptor
+ Tool (IFDTOOL). If you don't want to change these permissions and
+ keep the ones provided in the initial descriptor, disable this switch.
+
+if MOD_INTEL_FLASH_DESCRIPTOR
+
config LOCK_MANAGEMENT_ENGINE
bool "Lock ME/TXE section"
default n
@@ -154,6 +166,8 @@
If unsure, say N.
+endif #MOD_INTEL_FLASH_DESCRIPTOR
+
config CBFS_SIZE
hex
default 0x100000
diff --git a/src/southbridge/intel/common/firmware/Makefile.inc b/src/southbridge/intel/common/firmware/Makefile.inc
index 774bb23..331382e 100644
--- a/src/southbridge/intel/common/firmware/Makefile.inc
+++ b/src/southbridge/intel/common/firmware/Makefile.inc
@@ -68,6 +68,8 @@
$(obj)/coreboot.pre
mv $(obj)/coreboot.pre.new $(obj)/coreboot.pre
endif
+
+ifeq ($(CONFIG_MOD_INTEL_FLASH_DESCRIPTOR),y)
ifeq ($(CONFIG_LOCK_MANAGEMENT_ENGINE),y)
printf " IFDTOOL Locking Management Engine\n"
$(objutil)/ifdtool/ifdtool \
@@ -79,6 +81,11 @@
$(IFDTOOL_USE_CHIPSET) -u $(obj)/coreboot.pre
mv $(obj)/coreboot.pre.new $(obj)/coreboot.pre
endif
+else
+ printf " Don't touch Intel Flash Descriptor\n"
+ cp $(obj)/coreboot.pre $(obj)/coreboot.pre.new
+ mv $(obj)/coreboot.pre.new $(obj)/coreboot.pre
+endif
ifeq ($(CONFIG_EM100),y)
printf " IFDTOOL Setting EM100 mode\n"
--
To view, visit https://review.coreboot.org/c/coreboot/+/31639
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I46ec6339008edcc78fe76682eed5714f85354937
Gerrit-Change-Number: 31639
Gerrit-PatchSet: 1
Gerrit-Owner: Mario Scheithauer <mario.scheithauer(a)siemens.com>
Gerrit-MessageType: newchange