Commit Graph

57088 Commits

Author SHA1 Message Date
fdeebb7558 mb/google/nissa/var/sundance: Add FW_CONFIG probe for WWAN devices
Add FW_CONFIG probe based on sundance boxster of below devices:
WWAN

Schematic version: NEC_SHIKIBU_ADL_N_MB_EVT_20240330

BUG=b:332978681
TEST=Boot to OS and verify the WWAN devices is set based on
fw_config.

Change-Id: I14339201d8ee21c85fefa96a49323e0c25cb8eca
Signed-off-by: Leo Chou <leo.chou@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83041
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-12 11:02:36 +00:00
74472453ed mb/google/trulo/var/orisa: Disable storage devices based on fw_config
Disable devices in variant.c instead of adding probe statements to
devicetree because storage devices need to be enabled when fw_config is
unprovisioned.

BUG=b:345112878
BRANCH=firmware-nissa-15217.B
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: I1e5e49c1baa8d2b00134c26cc3b69aa15712b512
Signed-off-by: Amanda Huang <amanda_hwang@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82907
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2024-06-12 11:02:13 +00:00
24d66f8303 mb/google/trulo/var/orisa: Enable HDA Codec ALC256
We use ALC256 as HDA codec on orisa. Add verb table and the
related device tree changes for HDA related registers.

BUG=b:338523452
BRANCH=firmware-nissa-15217.B
TEST=emerge-nissa coreboot

Change-Id: I92051886341bd317cce6061ece83439d156b0f90
Signed-off-by: Amanda Huang <amanda_hwang@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82719
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2024-06-12 11:01:31 +00:00
7ba0cc0f4c mb/google/trulo/var/orisa: Add overridetree
Add override devicetree based on schematic_20240607.

BUG=b:333486830
BRANCH=firmware-nissa-15217.B
TEST=emerge-nissa coreboot

Change-Id: Id3ceff41fdb8e4a57bd6dab6247b622a5d13587d
Signed-off-by: Amanda Huang <amanda_hwang@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82714
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2024-06-12 07:04:39 +00:00
829b94dc98 treewide: Move skip_atoi function to commonlib
BUG=none
TEST=Build and verify on Screebo
TEST=make unit-tests

```
$ make tests/commonlib/bsd/string-test
[==========] tests_commonlib_bsd_string-test(tests): Running 1 test(s).
[ RUN      ] test_skip_atoi
[       OK ] test_skip_atoi
[==========] tests_commonlib_bsd_string-test(tests): 1 test(s) run.
[  PASSED  ] 1 test(s).
```

Change-Id: Ifaaa80d0c696a625592ce301f9e3eefb2b4dcd98
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82910
Reviewed-by: Jakub Czapiga <czapiga@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2024-06-11 21:06:59 +00:00
3da7829958 mb/razer/blade_stealth_kbl/h3q: add VBIOS table
This commit adds the VBIOS table, extracted from Linux sysfs running on
the stock firmware version 8.02, to the coreboot tree, required for
some graphics backends.

Change-Id: I0d1c9795741e112154bfe6885eea744538373d5a
Signed-off-by: Reagan Bohan <xbjfk.github@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82460
Reviewed-by: Nico Huber <nico.h@gmx.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2024-06-11 20:51:58 +00:00
8979955900 mb/razer/blade_stealth_kbl: add panel_cfg
This commit defines the panel_cfg register for the Razer Blade Stealth
(Kaby Lake). This enables libgfxinit support. These values are derived
from the stock firmware. First, VBIOSes were extracted from the stock
firmware. Then, intelvbtool was used to extract the VBT from each of the
VBIOS tables. Finally, intel_vbt_decode from igt-gpu-tools was used to
extract the register values. Although there were multiple VBIOSes
present in the firmware, all VBIOSes across both firmwares (on version
1.50 for the H2U and 8.02 for the H3Q) had the same register values.

Change-Id: I4c8b26ffb7a70d08655986084a714206d9d0c96a
Signed-off-by: Reagan Bohan <xbjfk.github@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82458
Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-11 20:51:47 +00:00
bdd3b00926 sb/intel/lynxpoint/fadt: Fill extended FADT after populating lengths
Commit 88decca14f ("ACPI: Add helper fill_fadt_extended_pm_io()")
moved the population of the extended FADT to a separate function, but
incorrectly placed that function call before various length fields were
populated, leading to spurious validation errors in the cbmem boot log.

Correct this by moving the call to fill_fadt_extended_pm_io() after
the required fields are populated.

TEST=build/boot google/slippy (wolf), verify no FADT errors in cbmem
console log.

Change-Id: I1f8522e4813e6071692206f2b7ad2a2f5086071e
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83035
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2024-06-11 18:59:24 +00:00
6a673d46ee soc/amd/genoa_poc: Prefer include <soc/gpio.h> via <gpio.h>
Change-Id: I0e5fba7db7d97835001934cb140f4c76bdc46d3e
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82889
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2024-06-11 14:42:20 +00:00
05bb053e63 tree: Drop non-existent directories from subdirs-y
Change-Id: Icb9e72edf3a982a095dceee4da19f90c53fcddd0
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83021
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2024-06-11 11:26:07 +00:00
6a5c50b995 mb/google/trulo/var/orisa: Add memory config
Fill in memory config based on the the schematic_20240607.

BUG=b:333486830
BRANCH=firmware-nissa-15217.B
TEST=emerge-nissa coreboot

Change-Id: I1456f7385e092b606fc0a35b25f3454600af8b23
Signed-off-by: Amanda Huang <amanda_hwang@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82662
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-11 06:28:29 +00:00
e262230b78 MAINTAINERS: Add Nicholas Chin for all Dell Latitudes
All of the Dell Latitudes from GM45 and until at least Haswell use a
derivative of the MEC5035 EC, and I have been actively working on
coreboot support for this EC and boards that use it. Rename the "E6400
MAINBOARD" section to "DELL LATITUDE" and add mb/dell/snb_ivb_latitude
and mb/dell/e7240 as additional paths.

Change-Id: I7ba46980bfc8569a85593e415f01cc83fe7d67d7
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83008
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-10 10:38:05 +00:00
496362d7e1 util/autoport: Assign SPD addresses in devicetree
Commit 45e4ab4a66 (mb/*: Update SPD mapping for sandybridge boards)
changed the way in which SPD addresses are set up for SNB/IVB boards,
but autoport was not updated to reflect these changes. Result is:

    register "spd_addresses" = "{0x50, 0x51, 0x52, 0x53}" # FIXME: Put proper SPD map here"

The stray quote at the end is irritating, but is hard to get rid of
without substantial refactoring of autoport's guts. But, given that
this is a FIXME comment, anyone using autoport should just drop the
comment after verifying the SPD map, so it's not a big deal.

In addition, update the corresponding section of the README, which
was horrendously out-of-date.

Change-Id: I6ad38f53afc4fafb45be7f086723cc0782a965ed
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82405
Reviewed-by: Keith Hui <buurin@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-10 10:36:45 +00:00
8da4d8840c mb/google/nissa/var/riven: Add GPIO table
Refer to the reference board of nivviks, and update GPIO settings
based on latest schematic (Riven(ZDK)_MB_Proto_0601.pdf).

BUG=b:337169542
TEST=Local build successfully.

Change-Id: Ic43c743fcc2ec89b5a9e2fbe1a87b833d59f1e74
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82973
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-10 10:33:09 +00:00
e169419946 arch/x86: Clarify help text for 64-bit support
The word "experimental" has been removed from the help text for
HAVE_X86_64_SUPPORT Kconfig. This is because the x86_64 architecture
has now been officially tested and enabled for several x86 SoC
platforms.

This work will provide us with the foundation we need to begin working
with Intel's next-generation SoC platform (which requires to support
64-bit mode of booting by default).

Therefore, we can now remove the word "experimental" from the
"HAVE_X86_64_SUPPORT" Kconfig help text.

TEST=Able to build and boot google/rex64 in 64-bit mode to ChromeOS.

Change-Id: Ibd629f4e2722f3cbabbe297d4481790c9fa9226a
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83009
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-10 09:43:59 +00:00
9058b46f9c sb/intel/lynxpoint/pcie.c: Add 9-series PCH-H device IDs
Looks like PCIe root port device IDs for 9-series PCH-H are missing from
commit 434d7d4582 (sb/intel/lynxpoint: Add PCI DIDs for 9 series PCHs)
for some reason. Add them, so that coreboot performs PCIe initialisation
for 9-series PCH-H.

Change-Id: I1589418e5e25daabbf09c66c637e9c4f86aa02a6
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82947
Reviewed-by: Nico Huber <nico.h@gmx.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-09 18:47:52 +00:00
c2d967aaf9 mb/asrock/h110m/Makefile.mk: Remove superfluous spd from subdirs-y
The H110M does not use memory down, and the spd directory doesn't exist
in the board's directory in the first place. This was probably just copy
and paste leftover from some existing Skylake board in the initial port.

TEST=Timeless build does not change.

Change-Id: I35744310b2bf8a14165dae9808c982e6dc274a74
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83010
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-09 12:25:33 +00:00
ab4b220a35 cpu/x86/Kconfig: Add SMM Kconfig help
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Ia0a5c48c6314f53c4ed72958f5d6f839f0a5c2ca
Reviewed-on: https://review.coreboot.org/c/coreboot/+/77973
Reviewed-by: Nico Huber <nico.h@gmx.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-09 12:01:00 +00:00
3f56bd2394 superio/ite/it8659e: Add driver for ITE IT8659E
Based on the non-public "ITE IT8659E-I Preliminary Specification V0.7.2
(For H Version)".

TEST=Initialize IT8659E on the new Protectli platform

Change-Id: I11657ec6e1c880f0cee247071486a904a92bb7a1
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80497
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
2024-06-09 11:14:25 +00:00
e80b4c7f1a util/superiotool: Add support for dumping ITE IT8659E configuration
Based on the non-public "ITE IT8659E-I Preliminary Specification V0.7.2
(For H Version)".

TEST=Dump IT8659E configuration on the new Protectli platform

Change-Id: Ic036f8b99d5bd0107be7850fc4509da1bf020fe5
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80495
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2024-06-09 11:12:37 +00:00
ad83eb1ee6 mainboard/emulation/qemu-sbsa: Add qemu-sbsa board
Add coreboot support for qemu's sbsa-ref (Server Base System
Architecture) machine (-m sbsa-ref).

The qemu-sbsa coreboot port runs on EL2 and is the payload of the
EL3 firmware (Arm Trusted Firmware).

Note that, coreboot expects a pointer to the FDT in x0. Make sure
to configure TF-A to handoff the FDT pointer.

Example qemu commandline:

  qemu-system-aarch64 -nographic -m 2048 -M sbsa-ref \
                      -pflash <path/to/TFA.fd> \
                      -pflash <path/to/coreboot.rom>

The Documentation can be found here:
Documentation/mainboard/emulation/qemu-sbsa.md

Change-Id: Iacc9aaf065e0d153336cbef9a9b5b46a9eb24a53
Signed-off-by: David Milosevic <David.Milosevic@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/79086
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
2024-06-08 20:41:14 +00:00
91cda2af74 mainboard: add Dell Latitude E7240
Based on autoport output.

It boots to Arch Linux (Linux 6.6.3) from USB and mSATA with SeaBIOS.

Change-Id: I6933bdbcc8d0bbb85d62657624740266284ac71c
Signed-off-by: Iru Cai <mytbk920423@gmail.com>
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/79746
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2024-06-08 17:32:00 +00:00
ca5254acc0 soc/alderlake/romstage: Set UsbTcPortEnPreMem UPD based on devicetree
The UsbTcPortEn UPD for FSP-S is being set in ramstage, however the
equivalent FSP-M UPD, the UsbTcPortEnPreMem, was not being set.
Following the Meteor Lake example, set the UsbTcPortEnPreMem UPD
as well for Alder Lake.

Setting this FSP-M UPD will cause FSP to properly program sideband
use BSSB_LSx pins for the enabled Type-C ports. Required for proper
DCI debug and TCSS initialization flow.

Change-Id: If3b79167ec1769ddfb7d28a6c78a3e80bd10afe7
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80500
Reviewed-by: Nico Huber <nico.h@gmx.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2024-06-08 08:18:26 +00:00
f0fb3af828 mb/dell: Add Latitude E6430 (Ivy Bridge)
Mainboard is QAL80/LA-7781P (UMA). The version with an Nvidia dGPU was
not tested. This is based on the autoport output with some manual fixes.
The VBT was obtained using `intelvbttool --inlegacy --outvbt data.vbt`
while running version A24 (latest version) of the vendor firmware.

The flash is 8MiB + 4MiB, and can be easily accessed by removing the
keyboard. It can also be internally flashed by sending a command to the
EC, which causes the EC to pull the FDO pin low and the firmware to skip
setting up any chipset based write protections [1]. The EC is the SMSC
MEC5055, which seems to be compatible with the existing MEC5035 code.

Working:
- Libgfxinit
- USB EHCI debug (left side usb port is HCD index 2, middle port on the
  right side is HCD index 1) with the CH347
- Keyboard
- Touchpad/trackpoint
- ExpressCard (tested with USB 3.0 card)
- Audio
- Ethernet
- SD card reader
- mPCIe WiFi
- SeaBIOS 1.16.3
- edk2 (MrChromebox's fork, uefipayload_202309)
- Internal flashing using dell-flash-unlock

Not working:
- S3 suspend: Possibly EC related, DRAM power is getting cut when
  entering S3
- Physical wireless switch: this triggers an SMI handler in the vendor
  firmware which sends commands to the EC to enable/disable wireless
  devices, and has not been reimplemented
- Battery reporting: needs ACPI code for the EC
- Brightness hotkeys: probably EC related
- The system reports that the power button was pressed and shuts down
  when the CPU hits around 86 degrees Celsius, before the CPU can
  thermal throttle. Likely EC and possibly PECI related.
- Integrated keyboard with upstream GRUB 2.12 payload: Upstream GRUB
  initializes the 8042 PS/2 controller in a way that is incompatible
  with how the EC firmware emulates it. GRUB tries to initialize the
  controller with scan code set 2 without translation, but the EC only
  ever returns set 1 scan codes to the system and thus is only works as
  an untranslated set 1 keyboard or a translated set 2 keyboard,
  regardless of commands to set the scan code. A USB keyboard works
  fine.

Unknown/untested:
- Dock
- eSATA
- TPM
- dGPU on non-UMA model
- Bluetooth module (not included on my system)

[1] https://gitlab.com/nic3-14159/dell-flash-unlock

Change-Id: I93c6622fc5da1d0d61a5b2c197ac7227d9525908
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/77444
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-08 06:18:28 +00:00
ba47ff7197 tree: Remove unused <option.h>
Change-Id: Ia3df14ebd365c00902b5d2ba300d8ade4c2d6c26
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82690
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2024-06-08 00:23:19 +00:00
b498a4c805 sio/nuvoton: Add Kconfig for shared PS/2 port
Introduce HAVE_SHARED_PS2_PORT Kconfig for this Super I/O to have
mainboards indicate if they have one shared PS/2 port on the rear
panel. On these boards (where a Y-cable cannot allow both
keyboard and mouse to work off the same port), if a PS/2 keyboard is
not present, SIO should be configured to swap its role to mouse, to
allow the OS to find and initialize any mouse connected.

Supporting code will come in a separate patch. Idea is to condition
them on this Kconfig.

Change-Id: I156b15c6ba233cbe8b9ba4d2cfbca6836ad7483a
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82631
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-08 00:20:24 +00:00
a911b75848 mb/*: Remove old USB configurations from SNB/bd82x6x boards
Remove USB configurations and data structures from northbridge
devicetree (SNB+MRC boards) and bootblock/romstage C code
(native-only SNB boards). All USB configurations are drawn from
southbridge devicetree going forward.

Change-Id: Ie1cd21077136998a6e90050c95263f2efed68a67
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81882
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-08 00:19:23 +00:00
ee12634872 nb/sandybridge,sb/bd82x6x: Configure USB from southbridge devicetree
Transfer all USB responsibilities to southbridge/intel/bd82x6x,
using one set of USB port configuration supplied by mainboards
in the southbridge section of their devicetree.

For MRC raminit, export southbridge_fill_pei_data() as a hook for
southbridge code to implement. With new code via this hook, bd82x6x
fills pei_data based on this one set of USB port config.

For native raminit, early_usb_init() now goes directly to the devicetree
and no longer get passed an address to it.

TEST=abuild passes for all affected boards. All USB ports still work
on asus/p8x7x-series/v/p8z77-m.

Change-Id: I38378c7ee0701abc434b030dd97873f2af63e6b0
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81881
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-08 00:11:36 +00:00
0aa069fb10 mb/asus/p8z77-m: Update USB current map to match vendor
This board has used the USB current map from asus/p8z77-m_pro since it
first landed in coreboot, which actually doesn't match vendor firmware.
Apply values obtained from hardware while running vendor firmware
to both native and MRC config.

Change-Id: I7ce13493c3ecac8154460c1fedf05e2d70a8e394
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82756
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-08 00:10:10 +00:00
51a57eb5ea mb/*: Add consolidated USB port config for SNB+MRC boards
For each sandybridge boards with option to use MRC or native platform
init code, add a copy of the board's USB port config, consolidated between
both code paths, into the southbridge devicetree, using special values
allocated for this consolidation.

These get hooked up in a separate patch.

Change-Id: I53efca3d29b3c5d4d5b7e3d6dc3e6ce6c34201e6
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81880
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-08 00:08:33 +00:00
1acb3e118b mb/asus/p8z77-v: Apply updated USB current map to sb devicetree
This map is found stored in plain text in vendor firmware image.

They will take effect when USB config is transitioned to southbridge
devicetree.

Change-Id: Iab0a225560856771407bb815ff4d8bc95d0f884f
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82755
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2024-06-08 00:05:55 +00:00
c36b5ea189 mb/*: Copy bd82x6x boards' USB port config into devicetree
For mainboards using southbridge/intel/bd82x6x, copy the contents
of mainboard_usb_ports array into southbridge devicetree. In-line
comments are maintained.

Boards also capable of using MRC raminit are done in a separate
patch.

Change-Id: Ia8a967eb3466106f3a34e024260e13d02f449a25
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81879
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-07 22:39:18 +00:00
51a01bdcd6 sb/intel/bd82x6x/early_usb.c: Align native current map with MRC
Replace 3 unused values in the map with those found during a Ghidra
examination of MRC binary, and on hardwares running vendor firmware
(asus/p8z77-m and HP Z210 CMT Workstation).

The outgoing values were introduced in commit 216ad2170c
("sb/intel/bd82x6x: Add new USB currents") in anticipation for
Gigabyte GA-Z77-DS3H mainboard, but effort to land it was eventually
abandoned. Since commit xxxxxxxxxxxx, such values can be placed
directly in the port config, so there should be no hurdle should that
effort be resurrected.

Add a few #defines in pch.h to place some inline documentation
on MRC values, but more will be documented in the future when this
mapping is introduced MRC-side.

Finally, update autoport to match.

Change-Id: I195c7f627994e48f7a6e6698589504dc96248cff
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82754
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2024-06-07 22:35:02 +00:00
943b540914 sb/intel/bd82x6x: Make space for USB port config in devicetree
This is the first step to:

- Move USB port configs, which are static, from C code to devicetree;
- Unify USB port configs between MRC and native code path.

Change-Id: I59af466d41790e2163342cac8676457ac19371ea
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81878
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-07 22:34:24 +00:00
317a982ddb nb/intel/sandybridge: Refactor pei_data building code
Incorporate fixed constants and simple data members into struct
pei_data as it gets initialized and make more use of existing helpers.
Compiler zeroes structs set up this way so the memset() is no longer
needed.

Drop northbridge_fill_pei_data() as it gets replaced entirely.

Gut southbridge_fill_pei_data() in preparation for having southbridge
code fill in USB-related members.

This is to make the code easier to maintain, and realizes small savings
in compiled code size too.

Change-Id: I3140cb99b0106669aa27788641c2895ced048e95
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82480
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-07 22:33:59 +00:00
94625d2aae sb/intel/bd82x6x: Allow actual USBIRx values for native USB config
For USB to work under native code path, the USB port config needs to
include a current setting for each port, which gets mapped to an
initialization value that gets programmed into the USBIRx register
for the respective port. This map resides in early_usb.c.

The need to update it, whenever we see a previously unaccounted for
initialization value, is getting out of hand.

Instead this patch will allow specifying those values, presumably
taken from an inteltool dump while running vendor firmware,
directly in the USB port map.

Because all USBIRx values are always in the 0x20000yyy form, we only
need the lowest 12 bits. We have more than enough space in the USB
port config structure for this.

As the lowest yyy value we saw so far is 0x53, a note is included to
limit the map to not more than 80 entries. Any value that is too big
to be an index into the map is programmed directly, + 0x20000000, into
the registers.

This opens the future possibility to use the map for a simpler
mapping for boards also using MRC, and remove the need for any
mapping at all for the rest.

Change-Id: I3d79b33bac742faa9bd4fc9852aff73fe326de4e
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82655
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2024-06-07 22:33:10 +00:00
83cd6f9f89 soc/intel/cmn/cse: Support CSE sync from payload
Skip CSE sync in coreboot when payload is doing it.

BUG=b:305898363
TEST=Verify CSE sync from depthcharge on Screebo

Change-Id: Ifa942576c803b8ec9e1e59c61917a14154fb94b2
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82660
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
2024-06-07 22:30:57 +00:00
9a5cc95586 util/smmstoretool: explain what happens when no store is found
We are going to expose ths tool to end users, and want to take
care that the presented information can be consumed by them.

The current code simply prints below warnings if we use release
binary available for end-user to download:

No firmware volume header present
No valid firmware volume was found

It will be concerning and not clear to end users, they might not
understant why it happens, what are the implications, and whether
it is something that they should worry about.

This commit tries to explain what actually happens here.

Change-Id: Iaa2678f5ae7c243811484c0567ced97ae0b3fc0a
Signed-off-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82692
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
2024-06-07 22:30:01 +00:00
f87fa53e4a soc/mediatek/mt8173/i2c.c: Remove unused macro
Change-Id: I90fbd7ce0e1c6cd15d73cb73dc774df2de56b346
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82932
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2024-06-07 18:57:21 +00:00
cb9591cef0 ec/starlabs/merlin/battery: Calculate unknown values
If the EC doesn't know a value, it will report it as 0xffff. In these
cases, calculate a value to used based on others. For example, if the
EC doesn't know the last full charge capacity, report the design
capacity to the OS.

Change-Id: I310555ff913c2e492bbaec4d77281ac32c0de7a3
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81408
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-07 18:54:13 +00:00
7c4cc60a6c ec/starlabs/merlin/battery: Check values are valid before using them
Change-Id: I559aca98044b7f0e6b08c475b5383c014bb4cd3f
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81407
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-07 18:52:46 +00:00
111fec8646 ec/starlabs/merlin: Rename BRPR to B1RP
Rename the BRPR (Battery Remaining Percentage) to B1RP to match
the format of the other variables.

Change-Id: I64a744d78180156e16dbd483a35c7f97ac84bcba
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81406
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-07 18:52:18 +00:00
d4d321ff89 ec/starlabs/merlin: Report the battery cycle count to ACPI
Change-Id: Iccb60d3530227fb71a3ce5a3ab1421627cc86611
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81405
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-07 18:51:45 +00:00
95e726e5b7 ec/starlabs/merlin/*: Remove temperature and control variables
The BT1T (temperature) and BT1C (control) are not used so remove
them.

Change-Id: Ie6e85042ec59851bcfb4c88a2e04181c3c39f89c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81404
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-07 18:50:55 +00:00
d57e57eb22 ec/starlabs/merlin/*: Fix the size of the battery soc
The battery remaining percentage is a uint16_t, so correct this in
the EC memory. This change is non-function, as the EC is little
endian.

Change-Id: I56a0ae8199a95c9722e9bcb4c0739f4ef1d6ab05
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81403
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-07 18:49:31 +00:00
a273e1da86 ec/starlabs/merlin/battery: Add extended battery information
Add BIX Method to report extended battery information.

Change-Id: Ie5baecb20c7d4600e0cf1d19ff5f67ce2003fa1d
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81402
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2024-06-07 18:48:44 +00:00
d401e10c57 mb/google/brya/var/xol: add support for wifi sar table
Add wifi sar table support for xol. Bit 31 in CBI/FW_CONFIG
is used to select different sar table (index 0 or 1) but only
0 is in used at the moment.

BUG=b:344274789
BRANCH=firmware-brya-14505.B
TEST=emerge-brya coreboot chromeos-bootimage

Change-Id: Id4dc74c4f2a807d2e531b419ecb7b590d4c32ac2
Signed-off-by: YH Lin <yueherngl@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82945
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2024-06-07 18:42:23 +00:00
49acc32cba mb/google/brox/var/brox: update thermal settings to start fan early
Current existing temperature thresholds of TSR1 sensor are set at 60C
to start fan. Due to this CPU gets hot and temperature goes over 80C.
In this situation, fan does not even start to lower down CPU temperature.

With updated new settings based on tuning from thermal team, start fan
early at 40C for TSR0 and TSR1 so the CPU temperature stays below 80C.

BUG=b:339493551
TEST=Built and tested on google/brox board

Signed-off-by: Sumeet Pawnikar <sumeet.r.pawnikar@intel.com>
Change-Id: I4765c13c10e436733d8c9d017085968daa561ccc
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82784
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: Karthik Ramasubramanian <kramasub@google.com>
2024-06-07 18:41:37 +00:00
f90d5d8820 mb/siemens/mc_apl1: Prefer include <soc/gpio.h> via <gpio.h>
Change-Id: If43089560a391d6a844ef1716b277e3146c66945
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82861
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
2024-06-07 18:40:27 +00:00
b6e949ff8e mb/google/rex0: Restore SSD power sequencing GPIOs in ramstage
This change restores the EN_PP3300_SSD GPIO configuration in the
ramstage for the Rex0 variant. This is necessary to enable testing
of RO lockdown scenarios on FSI'ed Screbo devices, where bootblock
changes are not applicable.

Additionally, ensures locking the GPIO PAD from getting misconfigured
after booting to OS.

BUG=b/337971452
BRANCH=firmware-rex-15709.B
TEST=Able to boot google/rex with RO locked to an older version without
SSD GPIO refactored, and RW is with the latest revision.

Change-Id: Ia7564b14a20d00e9bb2c9466b7a737dd97f01351
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82909
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2024-06-07 18:40:00 +00:00