Commit graph

58,039 commits

Author SHA1 Message Date
Sowmya Aralguppe
34cbfae8b6 mb/google/brox: Reduce PL4 only for battery disconnected scenario
This patch reduces PL4 only for no battery condition i.e. when battery
is disconnected or not physically present.

BUG=b:377305625
TEST=Build Brox and boot when the battery is disconnected

Change-Id: I59a1028ce9cd3a6cf98f865d9c085a64f391f201
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85002
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2024-11-06 18:20:22 +00:00
Ronak Kanabar
4597fc331b vc/intel/fsp/raptorlake: Add FspProducerDataHeader.h header
This patch is to add FspProducerDataHeader.h header file to support MRC
version Info in RPL.

BUG=b:281846937
TEST=Able to build and boot google/brox.

Change-Id: Iaf7983fbe8f103d9f51065cd160177e2bde7fd3d
Signed-off-by: Ronak Kanabar <ronak.kanabar@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84723
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2024-11-06 17:00:43 +00:00
Ronak Kanabar
198a2fcac6 soc/intel/alderlake: select UDK_202305_BINDING for RPL
RPL FSP v5311 uses 202305 Edk2. Select UDK_202305_BINDING Kconfig for
RPL SoC.

BUG=b:281846937
TEST=Able to build and boot google/brox.

Change-Id: I8dcc7d85cddadcce148ded5a81658253e8598413
Signed-off-by: Ronak Kanabar <ronak.kanabar@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84722
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2024-11-06 17:00:20 +00:00
Ronak Kanabar
4386948569 vendorcode/intel: Add edk2-stable202305 support
Add edk2-stable202305 support for MTL and RPL FSPs.
This patch includes (edk2/edk2-stable202302) all required
headers for edk2-stable202302 EDK2 tag from EDK2 github
project using below command:
    git clone -b edk2-stable202305 https://github.com/tianocore/edk2.git

commit hash: ba91d0292e593df8528b66f99c1b0b14fadc8e16

Only include necessary header files.

MdePkg/Include/Base.h was updated to avoid compilation errors
through safeguarding definitions for MIN, MAX, NULL, ABS, ARRAY_SIZE.

Add following fixes from older Edk2
060492ecd2 Safe guard enum macro in SmBios.h
2bf9599cf1 Use fixed size struct elements
cf4c6fd225 Remove FSPM_ARCH_UPD config guard
dc781d3a83 Define FSP_SIG macro for FSP 2.x compatibility
d045074b91 Remove wchar_t asserts

Change-Id: I96f0d0e393d31b325f9e42e3494556a2f6e1228e
Signed-off-by: Ronak Kanabar <ronak.kanabar@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84817
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2024-11-06 17:00:06 +00:00
Hualin Wei
099bec1cc6 mb/google/dedede/var/awasuki: Enable LTR mechanism for PCIe root port 8
Realtek AX generation IC utilizes LTR-issued latency requests to
optimize WiFi latency and power consumption, it requires host
enabling LTR to meet the design requirement. We enabled the host's
LTR by enabling PCIe root port 8, which met resltek's technical
requirements.

BUG=b:366383364
TEST=Tested on Awasuki with RTL8852BE
Use command $ lspci -vv, LTR+ is listed on DevCtl2

Change-Id: I0c80f89b4fdb52a5d9da17548537072ec2d40418
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84951
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2024-11-06 16:47:59 +00:00
Lawrence Chang
d88eeae616 soc/intel/jasperlake: add support for RP LTR mechanism
Reserve Root Port LTR mechanism in FSP, in case some devices
need to optimize LTR.

BUG=366383364
TEST=Tested on Awasuki with RTL8852BE
use lspci -xxx to get PCIE config space dump, and LTR Mechanism Enable
bit is offset 68h[10].
00:1c.0 PCI bridge: Intel Corporation Device 4dbf (rev 01)
00: 86 80 bf 4d 07 05 10 00 01 00 04 06 10 00 81 00
10: 00 00 00 00 00 00 00 00 00 01 01 00 20 20 00 20
20: c0 7f c0 7f f1 ff 01 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 04 12 00
40: 10 80 42 01 00 80 00 00 00 00 10 00 13 4c 72 08
50: 43 00 11 70 00 b2 3c 00 00 00 40 01 08 00 00 00
60: 00 00 00 00 37 08 00 00 00 04 00 00 0e 00 00 00
70: 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 05 90 01 00 38 02 e0 fe 00 00 00 00 00 00 00 00
90: 0d a0 00 00 86 80 bf 4d 00 00 00 00 00 00 00 00
a0: 01 00 03 c8 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 01 10 00 07 42 18 01 40 08 00 9e 09 00 00 00 00
e0: 00 03 e3 00 00 00 00 00 16 00 10 00 00 00 00 00
f0: 50 01 00 00 00 00 00 4c b5 0f 02 01 04 00 00 84

Change-Id: I85e50b01cc9fb5522d457cfce3700b7c85d7012f
Signed-off-by: Lawrence Chang <lawrence.chang@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84866
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: David Ruth <druth@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-11-06 16:47:25 +00:00
Robert Chen
6a8e8459a8 mb/google/dedede/var/drawcia: Update ext_vr for board version > 0xb
ext_vr_update should be run after board version 0xb, but skipped by
return. Drawper LTE board version was set after 0x9, but there are more
board added after that. Specific Drawper board version as 0xa, 0xb and
0xf.

BUG=b:376828839
BRANCH=firmware-dedede-13606.B
TEST=emerge-dedede coreboot chromeos-bootimage and test on DUTs.

Change-Id: I13f4709b6f490169f69054cf2b26430b4de0746a
Signed-off-by: Robert Chen <robert.chen@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84953
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Derek Huang <derekhuang@google.com>
2024-11-06 16:36:25 +00:00
Subrata Banik
b9273a1de1 soc/intel/meteorlake: Remove SOC_INTEL_GFX_MBUS_JOIN config
This patch removes the SOC_INTEL_GFX_MBUS_JOIN configuration option.
Support for fast modeset joining has been added to the mainline i915
kernel driver (https://patchwork.freedesktop.org/series/130480/),
making this coreboot-specific workaround unnecessary.

BUG=b:291885733
TEST=Successful build and boot of google/screebo with single and dual
displays, no redundant boot splash.

Change-Id: Ifb0416df53a453ce16815f9fd52ec6b53fade5e2
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81034
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: YH Lin <yueherngl@google.com>
Reviewed-by: Paz Zcharya <pazz@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-11-06 12:47:50 +00:00
Nicholas Sudsgaard
b892eca375 mb/intel/coffeelake_rvp/cml_u: Correct number of jacks in hda_verb.c
This was found due to the `_Static_assert()` from CB:84360 failing.

As I do not own this board, I cannot test whether is change is
"functionally correct". However, I believe it is more likely that the
original authors forgot to update the verb table size, rather than them
adding additional verb data which was not meant to be used.

TEST=`_Static_assert()` mentioned above does not fail anymore.

Change-Id: I8df44e056bc841bfb344749ba214e6fb71a1955b
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84487
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-11-06 10:33:45 +00:00
Daniel Peng
55e7baff92 mb/google/nissa/var/glassway: Add initial LTE related settings
1. Add DB_1C_LTE 4 on DB_USB fw_config.
2. Implement WWAN power sequencing.
3. Disable LTE-related GPIOs based on fw_config.
4. Add I2C SX9324 (P-sensor) support.
   Refer Schematic file: CA31AC_R10_MB_SUB_240903A_P.pdf

BUG=b:374666995
BRANCH=firmware-nissa-15217.B
TEST=emerge-nissa coreboot chromeos-bootimage
     Confirm the device node i2c-STH9324:00 created correctly,
     and command for # i2cdump -f -y 11 0x28 is workable.

Change-Id: Ida56ff338d82f48aef419a65830a3380c83123d5
Signed-off-by: Daniel Peng <Daniel_Peng@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84925
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2024-11-06 07:51:33 +00:00
Arthur Heymans
01dfc9b187 Makefile.mk: Suppress stack-usage LTO link warning
Suppress the following warning during linking with gcc:
src/drivers/spi/spi_flash.c: In function 'spi_flash_cmd_write':
src/drivers/spi/spi_flash.c:138:5: error: stack usage might be unbounded [-Werror=stack-usage=]
  138 | int spi_flash_cmd_write(const struct spi_slave *spi, const u8 *cmd,

Change-Id: If08d6d543a4fcff07003af8d1f8dd59ab79f42f8
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84044
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2024-11-06 04:55:09 +00:00
Arthur Heymans
e15b584961 util/cbfstool: Deal with how lld organizes loadable segments
LLD deals with loadable segments in a different manner than BFD. The
MemSiz of the .text loadable section is padded till the virtaddr of the
.car.data section. Since .text is not loaded in ENV_CAR this does not
matter.

Change-Id: I1a0541c8ea3dfbebfba83d505d84b6db12000723
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84043
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-11-06 04:54:22 +00:00
Runyang Chen
379729b497 soc/mediatek/mt8196: Disable irq2axi feature
Irq2axi translates wire-based interrupt into message signal interrupt.
Since MT8196 uses legacy wire-based interrupt, this feature needs to be
disabled. If the interrupt is not handled, it will cause the system fail
to boot.

TEST=Build pass, check irq2axi_disable log and the interrupt can be
correctly handled by checking /proc/interrupts.
BUG=b:317009620

Signed-off-by: Runyang Chen <runyang.chen@mediatek.corp-partner.google.com>
Change-Id: I0e89a0ee75e574a4b9e8df0a0f6a5f6e03bba2d6
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84896
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-11-06 04:00:26 +00:00
Yidi Lin
ba0ac93452 soc/mediatek/mt8196: Enable EARLY_MMU_INIT
The boot time is improved by 58ms in bootblock. (78ms -> 20m)

BUG=b:361729697
TEST=check cbmem

Change-Id: I27ce378ba8e3744cfb3921835e34b32bbba991cb
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84897
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-11-06 04:00:18 +00:00
Yidi Lin
1121a7b9cc mb/google/rauru: Complete PCIe reset in romstage
De-assert PERST# at romstage to reduce the waiting time in ramstage.

BUG=b:361728592
TEST=The boot time improves 62ms

Change-Id: I2cd5cd59e7513b6e4036c3e8013a3c7322d2f787
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84895
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2024-11-06 04:00:11 +00:00
Felix Held
d38ed1504a mb/cwwk/adl/devicetree: correct PCIe RP 12 clock configuration
Looking at Intel document 759603 revision 001, Alder Lake N only has 5
PCIe clock outputs and clock request pins. I only have the version 2 of
this board which has a significantly different USB port configuration to
version 1, but there the Ethernet controller on RP 11 and the E key m.2
slot on RP 12 share the last PCIe clock output. The on-board TUBF0304
clock buffer chip takes the clock output form the last PCH PCIe clock
generator output and drives the clock inputs of both the last Ethernet
chip and the E key m.2 slot. Since the last clock output is always
active, since RP 11 has the PCIE_RP_CLK_REQ_UNUSED flag set, using the
non-existent clock output and request for RP 12 didn't break things.
ASPM L0s might still work though, since that one doesn't involve
switching off the PCIe reference clock, but haven't tested that yet.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I103f7c3fe0b806f5c0a5202b8221f522a4b1c378
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83911
Reviewed-by: coreboot org <coreboot.org@gmail.com>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-11-06 01:54:19 +00:00
Maciej Pijanowski
d28fedf4f2 mb/lenovo: Add ThinkCentre M920q (Coffee Lake)
It may come with 8th or 9th Gen CPUs. i5-8500T has been tested here.

Works:
- Serial adapter from daughter board (COM1 connector)
- USB ports front and back
- USB-C port (charging, data)
- HDMI
- Ethernet
- SATA
- NVMe
- internal speaker
- TPM2.0
- PCIe x8 port (x8 riser tested, x4 not)

Does not work:
- front audio jacks

Change-Id: Iea1dc5745c0ecf687fa18b793f0aab4b0855d6d4
Signed-off-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80609
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-11-05 20:34:19 +00:00
Felix Held
f48dd16995 soc/amd/common/psp_smi_flash: refactor SPI controller busy check
Since the functions that call 'spi_controller_available' end up checking
if the SPI controller is busy, refactor the function into
'spi_controller_busy' to simplify the logic on the caller's side. Also
move printing of the notice that the SPI controller is busy to
'spi_controller_busy' to not have that duplicated in caller.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Ibc21ab6eacf07c4adffdb4658142c2f9dfcbf2a1
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84920
Reviewed-by: Matt DeVillier <matt.devillier@amd.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-11-05 15:02:59 +00:00
Felix Held
7571044f9d soc/amd/common/psp_smi_flash: factor out get_flash_device
Since the RPMC-related functions will only need the spi_flash struct,
but not the region_device struct of the store region corresponding to
the 'target_nv_id', factor out 'get_flash_device' from
'find_psp_spi_flash_device_region'.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Ia99d3454df2c1c4182c193da7de1bbb4eef18313
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84905
Reviewed-by: Matt DeVillier <matt.devillier@amd.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Ana Carolina Cabral
2024-11-05 15:02:29 +00:00
Subrata Banik
5e580c79df soc/intel/alderlake: Disable UFS controllers only on S5 resume
Disable UFS controllers during romstage initialization only when
resuming from S5 (full power off).

On warm reboot, the UFS controllers are already disabled by the
previous boot cycle, so disabling them again is unnecessary.

TEST=Able to ensure UFS controller is already disabled in warm reboot
path and not causing any problem during S0ix cycle test.

Change-Id: Ia27d2156a002cef032d5f57d212cf4eb520b3bdf
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84974
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2024-11-05 03:35:04 +00:00
Subrata Banik
e3e4eb9989 soc/intel/meteorlake: Disable eSOL for Ovis/Deku
Disable the `FSP_UGOP_EARLY_SIGN_OF_LIFE` option (eSOL) for the
Ovis baseboard.

eSOL currently only supports display output over eDP and HDMI.

Ovis/Deku exclusively use Type-C for display, and eSOL cannot render
output over Type-C during early boot because it depends on Type-C
firmware loaded in a later stage.

TEST=Able to build and boot google/deku.

Change-Id: I5ddbd340f667b1631a42d130a793f0b1831aa0ba
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84981
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Derek Huang <derekhuang@google.com>
2024-11-05 03:33:54 +00:00
Daniel Peng
bbba62614a mb/google/nissa/var/glassway: Add touch screen ILIT2901 support
1. Extend 1 bit [34] for the TOUCHSCREEN_SOURCE.
   SSFC range for TOUCHSCREEN_SOURCE is bit[32:34].
2. Touchscreen panel: MUTTO A153728S1Y,
   and set TOUCHSCREEN_ILIT2901 to value "4"
3. Datasheet: #153728S1V1.0 SPEC_20240923.pdf

BUG=b:375986645
BRANCH=firmware-nissa-15217.B
TEST=1. emerge-nissa coreboot chromeos-bootimage
     2. Confirm command evtest and touchscreen function is workable.

Change-Id: I6e13c948edca5a894e1a00a1954f0f88c4a079cf
Signed-off-by: Daniel Peng <Daniel_Peng@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84894
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-11-05 01:42:20 +00:00
Karthikeyan Ramasubramanian
2e52f863ad ec/google/chromeec: Add API to get PD Chip info
Add API to get Power Delivery (PD) Chip info which includes vendor ID,
product ID and firmware version(if any).

BUG=None
TEST=Build Brox BIOS image and boot to OS.

Change-Id: I4cc4493ac64d44076877fee633488c95cd09807e
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84936
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
2024-11-05 00:21:11 +00:00
Matt DeVillier
c7bca700c8 mb/google/fizz: Fix USB port defintions
commit 6c83a71b0a ("skl mainboards/dt: Move usb{2,3}_ports settings
into XHCI device scope") not only moved the USB port definitions under
the XHCI device reference, but also combined multiple register
definitions. In doing so, it broke the inheritance from the baseboard,
since the variant overridetree registers now replaced the entire
usb2_ports/usb3_ports structs, rather than replacing individual array
elements therein. This resulted in any USB ports inherited from the
baseboard and not overridden by the variant being non-functional as they
were not included in the resulting combined devicetree.

To fix this, return to overriding individual array elements in the
usb2/3_ports structs.

TEST=build/boot google/fizz/var/karma. Verify all USB ports present and
functional. Verify mainboard/static.c in built shows all ports.

Change-Id: I0e80bf4949a857c21d44537eb720a7a8a7db2f80
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84955
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-11-04 19:54:52 +00:00
Sukumar Ghorai
4953648253 mb/google/fatcat/var/fatcat: Configure eSPI alarm GPIO
This patch configures the ESPI_SOC_ALERT_L GPIO pad on fatcat as
NC to enable S0ix low power entry.

TEST=Build fatcat and check the platform boots without an issue.

Change-Id: Icb80a56177105c0281d05fe1f5daa87e6f7e291f
Signed-off-by: Sukumar Ghorai <sukumar.ghorai@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84957
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
2024-11-04 18:13:47 +00:00
Sukumar Ghorai
dbe5ba8485 mb/google/fatcat: Disable package c-state auto-demotion
Package C-state auto demotion feature allows hardware to determine lower
C-state as per platform policy. Since platform sets performance policy
to balanced from hardware, auto demotion can be disabled without
performance impact.

TEST=Build fatcat and check the platform boots without an issue.

Change-Id: I01f2cb8ac1093ae98cc076e35ad1924baa53aa59
Signed-off-by: Sukumar Ghorai <sukumar.ghorai@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84956
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2024-11-04 18:13:41 +00:00
Sowmya Aralguppe
8a17b89733 ec/google/chromeec: Add is_battery_present()
This patch adds is_battery_present() to check if the
battery is physically present

BUG=b:335046538,b:329722827
TEST=Build Brox and check is_battery_present
returns the correct battery status.

Change-Id: Ie49ed8f6d8b0fa59ec0e7b06efea9cac4d253957
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83735
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2024-11-04 17:30:01 +00:00
Wei Hualin
af4a2ed955 mb/google/dedede/var/awasuki: Tune I2C touchpad for freq and TH
1. Modify the I2C frequency of the touchpad between 380 Khz and
400 Khz to meet the spec.
2. Increase clk the time of high (TH) to greater than 600ns.

Before:
I2C0 - 420KHz
TH - 557ns

After:
I2C0 - 398Khz
TH - 630ns

BUG=b:351968527
TEST=Check that the wave form meets the spec.

Change-Id: I5ccaa3a669e18319311de14833966410c7adf40d
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84898
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
2024-11-04 03:47:24 +00:00
Amanda Huang
7e08936a64 mb/google/fatcat/var/francka: Generate RAM ID for MT62F2G32D4DS-020 WT:F
Add Micron part MT62F2G32D4DS-020 WT:F only for Francka.

DRAM Part Name                 ID to assign
MT62F2G32D4DS-020 WT:F         0 (0000)

BUG=b:373394046
TEST=emerge-fatcat coreboot

Change-Id: I2de56c8c7a028edefbd3dc53f8b1e26dee3286f7
Signed-off-by: Amanda Huang <amanda_hwang@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84781
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-11-04 02:03:34 +00:00
Yu-Ping Wu
4873b6bc7a soc/mediatek/mt8188/spi: Fix out-of-bound array access for pad_funcs
The size of the inner array of the 2-dimensional array pad_funcs should
be 4 instead of SPI_BUS_NUMBER (6). This bug leads to two extra
gpio_set_mode() calls with unexpected GPIOs.

Inspecting spi.o, the data immediately after the .rodata.pad_funcs
section is .rodata.spi_ctrlr_bus_map, with the following data:

 00000428  00 00 00 00 00 00 00 00  00 00 00 00 05 00 00 00
 00000438  00 00 00 00 00 00 00 00  ...

This is equivalent to the following calls:

 gpio_set_mode(GPIO(GPIO05), 0);
 gpio_set_mode(GPIO(GPIO00), 0);

The second call is already included in the pad_funcs array, so the first
call is the only practical impact of this bug.

Change-Id: I9c44f09b3cdadbbf039b95efca7144f213672092
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84950
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2024-11-04 00:09:03 +00:00
Karthikeyan Ramasubramanian
cb11ad06c2 soc/intel/alderlake: Do lazy reset after disabling UFS
If the mainboard expects upcoming reset, then skip the reset after
disabling UFS. This will reduce the number of resets during firmware
update.

BUG=b:375444631
TEST=Build Brox BIOS image and boot to OS. Perform a firmware update and
confirm that the number of reset is reduced by 2 resets.

Change-Id: I4399555302ec23a76f89f406f437f311eea0ef99
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84935
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2024-11-03 06:45:02 +00:00
Anil Kumar
214e9743f8 mb/google/fatcat: Add devicetree for MAX98357A codec
Update device tree to support speaker o/p on MAX98357A AIC.

BUG=b:357011633
TEST=build coreboot image and test audio playback on Google/Fatcat board.

Signed-off-by: Anil Kumar <anil.kumar.k@intel.com>
Change-Id: I20de87f673e947f0e2332b818ebca01c0fa5e200
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84888
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-11-02 04:54:08 +00:00
Ian Feng
91ef89b8af mb/google/brya/var/banshee: select SOC_INTEL_RAPTORLAKE
Select SOC_INTEL_RAPTORLAKE to force coreboot to use the RPL FSP
headers for FSP as banshee is using a converged firmware image.

This effort also helps to save banshee boot time by 80-100ms as
RPL FSP is better optimized.

Additionally, Raptor Lake platform only needs 1 SIPI-SIPI which
saves 10ms of the boot time.

BUG=b:358254132
TEST=Able to build and boot google/banshee.

cold boot time w/o this CL

```
Total Time: 1,399,888
```

cold boot time w/ this CL

```
Total Time: 1,295,334
```

Change-Id: If22e07a4c1b35fe1d060ca523743c6c503937287
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84949
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
2024-11-01 07:23:30 +00:00
David Wu
ef112fdd37 mb/google/nissa/var/riven: Increase the VccIn Aux Imon IccMax to 30A
From power team's recommendation, increase the VccIn Aux Imon IccMax
to 30A to meet HW settings.

BUG=b:376306118
TEST=Build firmware and check the value is changing as expected.
Paste the firmware log.
[SPEW ]  VccInAuxImonIccImax= 0x78
[SPEW ]  (MAILBOX) VccInAuxImonIccImax   = 120 (1/4 Amp)
[INFO ]  Override VccInAuxImonIccImax = 120

Change-Id: I71020c2f631cb517a52d4bb65e35277eb731ced7
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84922
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Zhuohao Lee <zhuohao@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2024-11-01 07:09:24 +00:00
Felix Singer
672c36d71f 3rdparty/intel-microcode: Update submodule to upstream main
Updating from commit id fbfe741:
2024-09-10 12:02:03 -0600 - (microcode-20240910 Release)

to commit id 129f82f:
2024-10-29 17:43:50 -0600 - (microcode-20241029 Release)

This brings in 1 new commits:
129f82f microcode-20241029 Release

Change-Id: I0e4983d6e40a556f1f6f24cc253dc204b5b7d16c
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84921
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2024-10-31 18:21:23 +00:00
Jianjun Wang
affb04de0b mb/google/rauru: Pre-initialize PCIe at the bootblock stage
According to the PCIe CEM specification, the deassertion of PERST#
should occur at least 100ms after the assertion. Right now we simply
wait for 100ms in ramstage for that.

To speed up the boot time, pre-initialize PCIe by asserting PERST#
earlier in the bootblock stage. The pre-initialization time is stored
in the early init data region, so that the PCIe initialization in
ramstage could make sure the required 100ms delay is still reached.
This pre-initialization will speed up the boot time by 100ms on rauru.

TEST=Build pass, show pcie init pass log:
mtk_pcie_domain_enable: PCIe link up success (1)
BUG=b:317009620

Signed-off-by: Jianjun Wang <jianjun.wang@mediatek.com>
Change-Id: I2b84c25ae3ea9069fd38fa6b20b8235a7fc3a484
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84699
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2024-10-31 13:47:32 +00:00
zengqinghong
d99640ffe5 mb/google/nissa/var/teliks: Match VBT with SSFC
We want to configure different VBT timings for panels of different sizes
and distinguish them through SSFC. We select the reserved bit 6 of SSFC
as the flag bit. When using a 12-inch panel, set this bit to 0; when
using an 11-inch panel, set this bit to 1.
Without splitting, the platform_BootPerf test will fail.

BUG=b:374428465
TEST=
1. can match VBT with SSFC
-When SSFC is set to 0x40:
$ cat /sys/firmware/log | grep vbt
Bit 6 of SSFC is 1, use vbt-teliks_panel_11_inch.bin
CBFS: Found 'vbt-teliks_panel_11_inch.bin' @0x1c6140 size 0x50f in mcache @0x76adda14

-When SSFC is set to 0x0:
$ cat /sys/firmware/log | grep vbt
Bit 6 of SSFC is 0, use vbt-teliks.bin
CBFS: Found 'vbt-teliks.bin' @0x1c5bc0 size 0x50e in mcache @0x76add9b0

2. can pass platform_BootPerf test
The platform_BootPerf time measured for all SKUs is less than 1.55s.

Change-Id: Ia8fb45aede5ead4826d983760506c366a70643ee
Signed-off-by: Qinghong Zeng <zengqinghong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84871
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jianeng Ceng <cengjianeng@huaqin.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2024-10-31 04:38:35 +00:00
Subrata Banik
28717bd0d3 mb/google/fatcat: Adjust EC host command range for microchip EC
This commit adjusts the EC host command range for the Fatcat board to
0x800-0x807 & 0x200-0x20f.

This change is necessary because the microchip EC used on the Fatcat
board has a smaller host command range than the ITE/Nuvoton ECs used
on other Fatcat variants.

The `gen1_dec` register in the devicetree is updated to reflect this
change.

As per boot log, the `gen1_dec` aka offset 0x84, base address is 800
and size is 8 bytes.

AP FW Boot log:

	[SPEW]   PCI: 00:00:1f.0 resource base 800 size 8 align 0 gran 0 limit 0 flags c0000100 index 84

BUG=b:376207365
TEST=Able to build and boot google/fatcat w/o any error.

without this patch:

	[SPEW ]  LPC: Trying to open IO window from 800 size 8
	[ERROR]  LPC: Cannot open IO window: 800 size 8
	[ERROR]  No more IO windows

with this patch:

	[SPEW ]  LPC: Trying to open IO window from 800 size 8

Change-Id: Ifcee533341fa583d841a4b564f25831c6d04e951
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84919
Reviewed-by: Anil Kumar K <anil.kumar.k@intel.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Vijay P Hiremath <vijay.p.hiremath@intel.com>
2024-10-31 03:35:34 +00:00
Subrata Banik
bc8cc46055 soc/intel/pantherlake: Populate and pass DRAM info for SMBIOS
This patch implements the `save_dimm_info()` API to populate and pass
DRAM-related information to the next stage. This information
is used to generate the SMBIOS memory table, providing details about
installed DIMMs.

This addresses the issue where SMBIOS lacked detailed DIMM information.

Verified that `dmidecode` correctly dumps the DIMM information from the
SMBIOS table after this change.

BUG=b:376103463
TEST=Built and booted successfully. Verified DIMM info in SMBIOS using
`dmidecode`.

> dmidecode -t 17

```
Getting SMBIOS data from sysfs.
SMBIOS 3.0 present.

Handle 0x000B, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x000A
        Error Information Handle: Not Provided
        Total Width: 16 bits
        Data Width: 16 bits
        Size: 2 GB
        Form Factor: Row Of Chips
        Set: None
        Locator: Channel-0-DIMM-0
        Bank Locator: BANK 0
        Type: LPDDR5
        Type Detail: Unknown Synchronous
        Speed: 6400 MT/s
        Manufacturer: Hynix
        Serial Number: 00000000
        Asset Tag: Channel-0-DIMM-0-AssetTag
        Part Number: H58G56BK7BX068
        Rank: 1
        Configured Memory Speed: 6400 MT/s
        Minimum Voltage: 0.5 V
        Maximum Voltage: 0.5 V
        Configured Voltage: 0.5 V
...
...

Handle 0x0012, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x000A
        Error Information Handle: Not Provided
        Total Width: 16 bits
        Data Width: 16 bits
        Size: 2 GB
        Form Factor: Row Of Chips
        Set: None
        Locator: Channel-3-DIMM-0
        Bank Locator: BANK 0
        Type: LPDDR5
        Type Detail: Unknown Synchronous
        Speed: 6400 MT/s
        Manufacturer: Hynix
        Serial Number: 00000000
        Asset Tag: Channel-3-DIMM-0-AssetTag
        Part Number: H58G56BK7BX068
        Rank: 1
        Configured Memory Speed: 6400 MT/s
        Minimum Voltage: 0.5 V
        Maximum Voltage: 0.5 V
        Configured Voltage: 0.5 V
```

Change-Id: I3b942610272de401589ee0463de9cd0985974774
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84903
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2024-10-30 07:22:23 +00:00
Subrata Banik
59bf7dd62f soc/intel/pantherlake: Add ACPI names for missing devices
This patch adds ACPI names for the following devices:

- THC0 (PCI: 00:10.0)
- THC1 (PCI: 00:10.1)
- SRAM (PCI: 00:14.2)
- FSPI (PCI: 00:1f.5)

TEST=Able to build and boot google/fatcat without any error.

w/o this patch:

    [ERROR]  Missing ACPI Name for PCI: 00:10.0
    [ERROR]  Missing ACPI Name for PCI: 00:10.1
    [ERROR]  Missing ACPI Name for PCI: 00:14.2
    [ERROR]  Missing ACPI Name for PCI: 00:1f.5

Signed-off-by: Subrata Banik <subratabanik@google.com>
Change-Id: I474089607522a4bd13375cc34b8f8645ca3663d9
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84910
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2024-10-30 07:21:06 +00:00
Subrata Banik
9ae146df58 soc/intel/pantherlake: Set SMBUS device ACPI min sleep state as D0
This change sets the SMBUS device to min sleep state D0 in the ACPI
sleep state table.

TEST=Able to build and boot google/fatcat.

w/o this patch:

    [WARN ]  Unknown min d_state for PCI: 00:1f.4

w/ this patch:

No Error or Warning.

Change-Id: If84d2ee8abfef34f6411e01e6c37d4e2008a3666
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84909
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-10-30 07:19:57 +00:00
Subrata Banik
96d96dbb73 mb/google/fatcat: Define EC_SYNC_IRQ and GPIO_PCH_WP for variants
This commit defines the EC_SYNC_IRQ and GPIO_PCH_WP macros for
different Fatcat variants.

The EC_SYNC_IRQ macro is used for tight timestamps and wake support,
while the GPIO_PCH_WP macro is used for the WP signal to the PCH.

These macros were previously undefined or incorrectly defined for some
variants. This commit fixes these issues and ensures that the macros
are defined correctly for all variants.

Specifically, this commit:

- Defines EC_SYNC_IRQ and GPIO_PCH_WP for Fatcat Nuvo and Fatcat ITE.
- Defines EC_SYNC_IRQ as 0 (not connected) for Fatcat.
- Defines GPIO_PCH_WP as GPP_D02 for Fatcat.
- Leaves EC_SYNC_IRQ and GPIO_PCH_WP as 0 (TODO) for Francka.

TEST=Able to build and boot google/fatcat.

w/o this patch:

```
cros_ec_lpcs GOOG0004:00: couldn't retrieve IRQ number (-22)
cros_ec_lpcs GOOG0004:00: probe with driver cros_ec_lpcs failed with error -22
```

w/ this patch:

```
cros_ec_lpcs GOOG0004:00: Chrome EC device registered
```

Change-Id: I9bd248496f08869c08cf6daafeed6584d0b166b7
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84900
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2024-10-30 07:18:43 +00:00
Subrata Banik
b1839874be mb/google/fatcat: Ensure RW_SECTION_B at 16MB boundary for debug FMD
This patch updates the flash map layout to guarantee that the
RW_SECTION_B section starts at the 16MB boundary.

Additionally, fix typo in flash descriptor comment, where comment
incorrectly referred to "MTL" instead of "PTL".

TEST=Successfully builds google/fatcat.

Change-Id: Ia6dba611fba50f9694a75670d954a4630cde4d70
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84899
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-10-30 07:18:11 +00:00
Elyes Haouas
686b36bab8 tree: Fix cast an object of type 'nullptr_t' to 'uintptr_t' error
This to fix the error when using C23:
cannot cast an object of type 'nullptr_t' to 'uintptr_t' (aka 'unsigned long')
return (uintptr_t)NULL;
                  ^

Change-Id: Ibdc8794513a508fc61a5046692f854183c36b781
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84893
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jakub Czapiga <czapiga@google.com>
2024-10-29 01:41:41 +00:00
Patrick Rudolph
9dc9ef3082 uncore_acpi: Clean up resource code
Use the resource size to determine Vtd BAR size and drop the code to
calculate the Vtd BAR size.
While on it do not truncate the resource address to 32-bit, since the
DMAR entry is 64-bit wide anyway.

TEST: Booted on intel/archercity_crb

Change-Id: Ibaadc25c44345ba2eb9e6f75989d32b43d00d7a5
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84829
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2024-10-28 22:06:41 +00:00
Patrick Rudolph
485f51cf73 soc/intel/xeon_sp: Fix iiostack.asl
Align DSDT names with SSDT naming scheme, as provided by
iio_domain_set_acpi_name() and hide unused devices by implementing
the _STA method as done on newer platforms.

Change-Id: I8488907f28a78a6f71046dba54ba9cbd4b0652eb
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84795
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2024-10-28 22:06:35 +00:00
Patrick Rudolph
3625b0e0ee soc/intel/xeon_sp: Add SAD PCI driver
Get rid of some helper functions by properly using a pci_driver.

Configure SAD if necessary and lock SAD if necessary in the newly added
SAD PCI driver. This allows to drop lock_pam0123(), unlock_pam_regions()
and socket0_get_ubox_busno().

- Fixes SAD instance on secondary sockets not decoding the C-F segments
  as DRAM, which would prevent those sockets to access the ACPI/SMBIOS
  table anchor
- Adds PCI multi segment support
  (SKX and CPX only, other were working properly already)
- Moves locking of PAM0123_CSR and PAM456_CSR from SoC to driver code

Change-Id: I167b6ce48631fe3f97359ee33704f52ca854dbd1
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84794
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-10-28 22:06:29 +00:00
Patrick Rudolph
125194f5fa lib/smbios: Improve Type9
Set characteristics 1 based on slot type and scan PCI capabilities
to update the characteristics 2 field in SMBIOS type 9 accordingly.

Change-Id: If96e0381b10c25cf73b3797a0f02a40dc933993e
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/78292
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-by: Benjamin Doron <benjamin.doron00@gmail.com>
2024-10-28 22:06:01 +00:00
Patrick Rudolph
4a652eb926 pci: Add method to read PME capability
Add a helper method to read the PME capability.
Will be used in the following commit.

Change-Id: Id1fdc98c9ce86d3ddf8056bb609afc58008cf2e9
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84793
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2024-10-28 22:05:54 +00:00
Felix Held
d5764b8a5a soc/amd/common/psp: add RPMC provisioning code
Add the code to request the provisioning of the RPMC root key from the
PSP. When RPMC hasn't already been provisioned enabled and the PSP has
detected a SPI flash chip that both supports RPMC and has monotonic
counters that can still be provisioned, we send the PSP mailbox command
to request the RPMC provisioning and then reset the system, so the PSP
can do the actual provisioning.

TEST=On an out of tree AMD reference board using the Cezanne SoC code,
provisioning RPMC works as expected when selecting the corresponding
PERFORM_RPMC_PROVISIONING Kconfig option:

1st boot to initiate the RPMC provisioning:

[DEBUG]  PSP: Querying PSP capabilities...OK
[DEBUG]  PSP: Querying HSTI state...OK
[SPEW ]  RPMC isn't provisioned
[SPEW ]  SPI flash supports RPMC
[SPEW ]  RPMC revision 0
[SPEW ]  PSP NVRAM isn't healthy
[SPEW ]  PSP NVRAM is using RPMC protection
[SPEW ]  SPI flash RPMC counter 0 can still be provisioned
[SPEW ]  SPI flash RPMC counter 1 can still be provisioned
[SPEW ]  SPI flash RPMC counter 2 can still be provisioned
[SPEW ]  SPI flash RPMC counter 3 can still be provisioned
[SPEW ]  SPI flash RPMC counter 0 is in use
[SPEW ]  SPI flash RPMC counter 1 is not in use
[SPEW ]  SPI flash RPMC counter 2 is not in use
[SPEW ]  SPI flash RPMC counter 3 is not in use
[SPEW ]  SoC RPMC slot 0 can still be provisioned
[SPEW ]  SoC RPMC slot 1 can still be provisioned
[SPEW ]  SoC RPMC slot 2 can still be provisioned
[SPEW ]  SoC RPMC slot 3 can still be provisioned
[DEBUG]  RPMC: perform fusing using RPMC counter address 0
[DEBUG]  OK
[NOTE ]  RPMC: Rebooting
[INFO ]  warm_reset() called!

2nd boot after the provisioning is done:

[DEBUG]  PSP: Querying PSP capabilities...OK
[DEBUG]  PSP: Querying HSTI state...OK
[SPEW ]  RPMC is provisioned
[SPEW ]  SPI flash supports RPMC
[SPEW ]  RPMC revision 0
[SPEW ]  PSP NVRAM isn't healthy
[SPEW ]  PSP NVRAM is using RPMC protection
[SPEW ]  SPI flash RPMC counter 0 has already been provisioned
[SPEW ]  SPI flash RPMC counter 1 can still be provisioned
[SPEW ]  SPI flash RPMC counter 2 can still be provisioned
[SPEW ]  SPI flash RPMC counter 3 can still be provisioned
[SPEW ]  SPI flash RPMC counter 0 is in use
[SPEW ]  SPI flash RPMC counter 1 is not in use
[SPEW ]  SPI flash RPMC counter 2 is not in use
[SPEW ]  SPI flash RPMC counter 3 is not in use
[SPEW ]  SoC RPMC slot 0 has already been provisioned
[SPEW ]  SoC RPMC slot 1 can still be provisioned
[SPEW ]  SoC RPMC slot 2 can still be provisioned
[SPEW ]  SoC RPMC slot 3 can still be provisioned

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Ia7760c0bf7618ca60ef160329d0110ac8109032a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84707
Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-10-28 21:17:48 +00:00