Felix Held has submitted this change. ( https://review.coreboot.org/c/coreboot/+/62667 )
Change subject: mb/google/guybrush/var/nipperkin: Update privacy GPIO to Graphics DRM
......................................................................
mb/google/guybrush/var/nipperkin: Update privacy GPIO to Graphics DRM
GPIO_18 is used for LCD_PRIVACY_SCREEN feature starting board phase 2.
But it is programmed incorrectly in the concerned ACPI device. Pass the
correct GPIO.
BUG=b:204401306
TEST=Build and boot to OS in Nipperkin. Ensure that the ACPI object
contains the right GPIO. Ensure that the screen visibility gets updated
by pressing the privacy screen button.
Signed-off-by: Karthikeyan Ramasubramanian <kramasub(a)google.com>
Change-Id: I99d40b49f4e97063f1ec2e15ac3da21f700a93eb
Reviewed-on: https://review.coreboot.org/c/coreboot/+/62667
Tested-by: build bot (Jenkins) <no-reply(a)coreboot.org>
Reviewed-by: Raul Rangel <rrangel(a)chromium.org>
Reviewed-by: Jon Murphy <jpmurphy(a)google.com>
Reviewed-by: Rob Barnes <robbarnes(a)google.com>
---
M src/mainboard/google/guybrush/variants/nipperkin/overridetree.cb
1 file changed, 1 insertion(+), 1 deletion(-)
Approvals:
build bot (Jenkins): Verified
Raul Rangel: Looks good to me, approved
Rob Barnes: Looks good to me, approved
Jon Murphy: Looks good to me, but someone else must approve
diff --git a/src/mainboard/google/guybrush/variants/nipperkin/overridetree.cb b/src/mainboard/google/guybrush/variants/nipperkin/overridetree.cb
index 776edc8..adde71f 100644
--- a/src/mainboard/google/guybrush/variants/nipperkin/overridetree.cb
+++ b/src/mainboard/google/guybrush/variants/nipperkin/overridetree.cb
@@ -187,7 +187,7 @@
# Internal panel on the first port of the graphics chip
register "device[0].addr" = "0x80010400"
register "device[0].privacy.enabled" = "1"
- register "device[0].privacy.gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_5)"
+ register "device[0].privacy.gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_18)"
device generic 0.0 on end
end
end
--
To view, visit https://review.coreboot.org/c/coreboot/+/62667
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I99d40b49f4e97063f1ec2e15ac3da21f700a93eb
Gerrit-Change-Number: 62667
Gerrit-PatchSet: 4
Gerrit-Owner: Karthik Ramasubramanian <kramasub(a)google.com>
Gerrit-Reviewer: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-Reviewer: Jon Murphy <jpmurphy(a)google.com>
Gerrit-Reviewer: Raul Rangel <rrangel(a)chromium.org>
Gerrit-Reviewer: Rob Barnes <robbarnes(a)google.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Tim Wawrzynczak <twawrzynczak(a)google.com>
Gerrit-MessageType: merged
Felix Held has submitted this change. ( https://review.coreboot.org/c/coreboot/+/62272 )
Change subject: soc/intel/adl: Send EOP early in the boot sequence
......................................................................
soc/intel/adl: Send EOP early in the boot sequence
As part of boot time optimization, one of the culprit was CSE where
response to End Of Post (EOP) command used to take ~60ms. Earlier patch
was pushed to delay the EOP to reduce response time to ~5-7 ms. During
this stage overall platform boot time was ~1.15 seconds.
Once boot time was optimized to ~ 1 seconds, CSE EOP time again
increased to ~80 ms since coreboot used to send EOP at the time where
CSE was busy. This created some back and forth moving of sending EOP
command function within coreboot sequence.
Upon debugging using traces, it was found that coreboot used to send
EOP late where CSE was busy loading other IP payload, so it might take
more time to respond.
In order to avoid delayed response, coreboot has to send EOP in
stage when CSE is done with firmware init and it will be ready to
serve EOP as soon as possible. This also aligns with previous flow where
FSP used to send EOP once silicon init is done and coreboot used to
rely on FSP to send this message.
Moving EOP to earlier stage (From SoC) meets the requirement and CSE EOP time
reduces from ~60 ms to ~20 ms on Brya board.
Note that once SoC code sends EOP, coreboot common code won't send it
again since common code already has check in case EOP is sent earlier.
BUG=b:211085685
BRANCH=firmware-brya-14505.B
TEST=Tested on Brya system before and after the changes. Observed ~40ms
savings in boot time.
Change-Id: I9401d5e36ad43cdc0dfe947aabc82528d824df9b
Signed-off-by: MAULIK V VAGHELA <maulik.v.vaghela(a)intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/62272
Tested-by: build bot (Jenkins) <no-reply(a)coreboot.org>
Reviewed-by: Subrata Banik <subratabanik(a)google.com>
Reviewed-by: Ronak Kanabar <ronak.kanabar(a)intel.com>
Reviewed-by: Sridhar Siricilla <sridhar.siricilla(a)intel.com>
---
M src/soc/intel/alderlake/Kconfig
M src/soc/intel/alderlake/chip.c
2 files changed, 16 insertions(+), 0 deletions(-)
Approvals:
build bot (Jenkins): Verified
Ronak Kanabar: Looks good to me, approved
Sridhar Siricilla: Looks good to me, approved
Subrata Banik: Looks good to me, approved
diff --git a/src/soc/intel/alderlake/Kconfig b/src/soc/intel/alderlake/Kconfig
index 0484b17..38415e6 100644
--- a/src/soc/intel/alderlake/Kconfig
+++ b/src/soc/intel/alderlake/Kconfig
@@ -101,6 +101,7 @@
select SOC_INTEL_COMMON_FSP_RESET
select SOC_INTEL_COMMON_PCH_BASE
select SOC_INTEL_COMMON_RESET
+ select SOC_INTEL_CSE_SEND_EOP_EARLY
select SOC_INTEL_CSE_SET_EOP
select SSE2
select SUPPORT_CPU_UCODE_IN_CBFS
diff --git a/src/soc/intel/alderlake/chip.c b/src/soc/intel/alderlake/chip.c
index b423226..699b39d 100644
--- a/src/soc/intel/alderlake/chip.c
+++ b/src/soc/intel/alderlake/chip.c
@@ -6,6 +6,7 @@
#include <fsp/util.h>
#include <intelblocks/acpi.h>
#include <intelblocks/cfg.h>
+#include <intelblocks/cse.h>
#include <intelblocks/gpio.h>
#include <intelblocks/irq.h>
#include <intelblocks/itss.h>
@@ -148,6 +149,20 @@
/* Swap enabled TBT root ports in device tree if needed. */
pcie_rp_update_devicetree(get_tbt_pcie_rp_table());
+
+ /*
+ * Earlier when coreboot used to send EOP at late as possible caused
+ * issue of delayed response from CSE since CSE was busy loading payload.
+ * To resolve the issue, EOP should be sent earlier than current sequence
+ * in the boot sequence at BS_DEV_INIT.
+ * Intel CSE team recommends to send EOP close to FW init (between FSP-S exit and
+ * current boot sequence) to reduce message response time from CSE hence moving
+ * sending EOP to earlier stage.
+ */
+ if (CONFIG(SOC_INTEL_CSE_SEND_EOP_EARLY)) {
+ printk(BIOS_INFO, "Sending EOP early from SoC\n");
+ cse_send_end_of_post();
+ }
}
static void cpu_fill_ssdt(const struct device *dev)
--
To view, visit https://review.coreboot.org/c/coreboot/+/62272
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I9401d5e36ad43cdc0dfe947aabc82528d824df9b
Gerrit-Change-Number: 62272
Gerrit-PatchSet: 11
Gerrit-Owner: Maulik V Vaghela <maulik.v.vaghela(a)intel.com>
Gerrit-Reviewer: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-Reviewer: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-Reviewer: Rizwan Qureshi <rizwan.qureshi(a)intel.com>
Gerrit-Reviewer: Ronak Kanabar <ronak.kanabar(a)intel.com>
Gerrit-Reviewer: Sridhar Siricilla <sridhar.siricilla(a)intel.com>
Gerrit-Reviewer: Subrata Banik <subratabanik(a)google.com>
Gerrit-Reviewer: Tim Wawrzynczak <twawrzynczak(a)chromium.org>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Paul Menzel <paulepanter(a)mailbox.org>
Gerrit-MessageType: merged
Felix Held has submitted this change. ( https://review.coreboot.org/c/coreboot/+/60195 )
Change subject: intel/common/block/cse: Add option to send EOP early via SoC
......................................................................
intel/common/block/cse: Add option to send EOP early via SoC
Earlier while trying to optimize boot time End Of Post (EOP) time kept
increasing (~80 ms) when boot time decreased to around 1 second.
This was because CSE was busy with own firmware loading.
When EOP was moved later in boot stage it again created issue since CSE
got busy with other payload loading for OS boot, so response to EOP
got delayed by ~70-80 ms.
In order to avoid delayed response, coreboot has to send EOP in
stage when CSE is done with firmware init and it will be ready to
serve EOP as soon as possible. This also aligns with previous flow
where FSP used to send EOP once silicon init is done and coreboot used
to rely on FSP to send this message.
Moving EOP to BS_DEV_INIT boot state meets this requirement and CSE EOP
time reduces from ~60 ms to ~20 ms on Brya QS board.
Since this setting might vary for each SoC, SoCs can decide when to send
EOP in the boot sequence. This patch adds Kconfig option to send EOP via
SoC
BUG=b:211085685
BRANCH=firmware-brya-14505.B
TEST=Code compilation is fine for Brya board. Boot time test is done
using entire patchset and EOP time is reduced to ~25ms from earlier ~80ms.
Change-Id: I9c7fe6f8f3fadb68310d4a09692f51f82c737c35
Signed-off-by: MAULIK V VAGHELA <maulik.v.vaghela(a)intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/60195
Tested-by: build bot (Jenkins) <no-reply(a)coreboot.org>
Reviewed-by: Ronak Kanabar <ronak.kanabar(a)intel.com>
Reviewed-by: Subrata Banik <subratabanik(a)google.com>
---
M src/soc/intel/common/block/cse/Kconfig
1 file changed, 9 insertions(+), 0 deletions(-)
Approvals:
build bot (Jenkins): Verified
Ronak Kanabar: Looks good to me, approved
Subrata Banik: Looks good to me, approved
diff --git a/src/soc/intel/common/block/cse/Kconfig b/src/soc/intel/common/block/cse/Kconfig
index fb75486..e302447 100644
--- a/src/soc/intel/common/block/cse/Kconfig
+++ b/src/soc/intel/common/block/cse/Kconfig
@@ -45,6 +45,15 @@
Use this config for SoC platform prior to CNL PCH (with postboot_sai implemented)
to make `HECI1` device disable using private configuration register (PCR) write.
+config SOC_INTEL_CSE_SEND_EOP_EARLY
+ bool
+ depends on SOC_INTEL_COMMON_BLOCK_CSE
+ help
+ Use this config to send End Of Post (EOP) earlier through SoC code in order to
+ reduce time required to send EOP and getting CSE response.
+ In later stages, CSE might be busy and might require more time to process EOP command.
+ SoC can use this Kconfig to send EOP earlier by itself.
+
config SOC_INTEL_CSE_LITE_SKU
bool
default n
--
To view, visit https://review.coreboot.org/c/coreboot/+/60195
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I9c7fe6f8f3fadb68310d4a09692f51f82c737c35
Gerrit-Change-Number: 60195
Gerrit-PatchSet: 13
Gerrit-Owner: Maulik V Vaghela <maulik.v.vaghela(a)intel.com>
Gerrit-Reviewer: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-Reviewer: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-Reviewer: Rizwan Qureshi <rizwan.qureshi(a)intel.com>
Gerrit-Reviewer: Ronak Kanabar <ronak.kanabar(a)intel.com>
Gerrit-Reviewer: Sridhar Siricilla <sridhar.siricilla(a)intel.com>
Gerrit-Reviewer: Subrata Banik <subratabanik(a)google.com>
Gerrit-Reviewer: Tim Wawrzynczak <twawrzynczak(a)google.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Paul Menzel <paulepanter(a)mailbox.org>
Gerrit-CC: Ravindra N <ravindra(a)intel.corp-partner.google.com>
Gerrit-CC: Tim Wawrzynczak <twawrzynczak(a)chromium.org>
Gerrit-MessageType: merged
Felix Held has submitted this change. ( https://review.coreboot.org/c/coreboot/+/61498 )
Change subject: Revert "drivers/intel/fsp2_0: Allow `mp_startup_all_cpus()` to run serially"
......................................................................
Revert "drivers/intel/fsp2_0: Allow `mp_startup_all_cpus()` to run serially"
This reverts commit 6af980a2aeca9b8cedfb3d7734389e6e36099c88.
BUG=b:199246420
Change-Id: Iddb7aa6d52b563485a496798f2fe31ed64b4f4a8
Signed-off-by: Ronak Kanabar <ronak.kanabar(a)intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/61498
Tested-by: build bot (Jenkins) <no-reply(a)coreboot.org>
Reviewed-by: Maulik V Vaghela <maulik.v.vaghela(a)intel.com>
---
M src/drivers/intel/fsp2_0/ppi/mp_service_ppi.c
1 file changed, 4 insertions(+), 17 deletions(-)
Approvals:
build bot (Jenkins): Verified
Maulik V Vaghela: Looks good to me, approved
diff --git a/src/drivers/intel/fsp2_0/ppi/mp_service_ppi.c b/src/drivers/intel/fsp2_0/ppi/mp_service_ppi.c
index 9aef1b6..50e35b0 100644
--- a/src/drivers/intel/fsp2_0/ppi/mp_service_ppi.c
+++ b/src/drivers/intel/fsp2_0/ppi/mp_service_ppi.c
@@ -94,23 +94,10 @@
/* Run on BSP */
procedure(argument);
- /*
- * Run on APs Serially
- *
- * FIXME: As per MP service specification, EDK2 is allowed to specify the mode
- * in which a 'func' routine should be executed on APs (i.e. execute serially
- * or concurrently).
- *
- * MP service API `StartupAllCPUs` doesn't specify such requirement.
- * Hence, running the `CpuCacheInfoCollectCoreAndCacheData`
- * (UefiCpuPkg/Library/CpuCacheInfoLib/CpuCacheInfoLib.c#194)
- * simultaneously on APs results in a coherency issue (hang while executing `func`)
- * due to lack of acquiring a spin lock while accessing common data structure in
- * multiprocessor environment.
- */
- if (mp_run_on_all_aps((void *)procedure, argument, timeout_usec, false) !=
- CB_SUCCESS) {
- printk(BIOS_DEBUG, "%s: Exit with Failure\n", __func__);
+ /* Run on APs */
+ if (mp_run_on_aps((void *)procedure, argument,
+ MP_RUN_ON_ALL_CPUS, timeout_usec) != CB_SUCCESS) {
+ printk(BIOS_ERR, "%s: Exit with Failure\n", __func__);
return FSP_NOT_STARTED;
}
--
To view, visit https://review.coreboot.org/c/coreboot/+/61498
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Iddb7aa6d52b563485a496798f2fe31ed64b4f4a8
Gerrit-Change-Number: 61498
Gerrit-PatchSet: 6
Gerrit-Owner: Ronak Kanabar <ronak.kanabar(a)intel.com>
Gerrit-Reviewer: Andrey Petrov <andrey.petrov(a)gmail.com>
Gerrit-Reviewer: Felix Held <felix-coreboot(a)felixheld.de>
Gerrit-Reviewer: Maulik V Vaghela <maulik.v.vaghela(a)intel.com>
Gerrit-Reviewer: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-Reviewer: Subrata Banik <subratabanik(a)google.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-MessageType: merged