Commit graph

2,945 commits

Author SHA1 Message Date
Patrick Rudolph
e9c546b153 arch/x86: Rename breakpoint removal function
Match function name "init" with "remove" by renaming all
*_breakpoint_disable() to *_breakpoint_remove().

Change-Id: Id3da25cfa6fc0594887f3112e269e57e8ecb32b3
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85540
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-12-10 08:48:00 +00:00
Patrick Rudolph
0351872731 arch/x86: Add breakpoint to stack canary
In order to debug stack smashing add a write breakpoint to the
stack canary (at _stack or _car_stack) and print the IP when the
stack canary is written.

TEST: Wrote to address _stack in ramstage and got the EIP of the
      code that smashed the stack canary.

Change-Id: I8adf07a8425856795a4a71da5c41bec2244b02a8
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84833
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-12-10 08:47:52 +00:00
Varun Upadhyay
2411942a05 drivers/soundwire/alc711: Add common Kconfig for ALC7xx soundwire codecs
- Use common config DRIVERS_SOUNDWIRE_ALC_BASE_7XX for ALC7xx variants
- Introduce soundwire codec address in soundwire chip.h to calculate
device address for acpi table based on overridetree.
- Update devicetree and Kconfig to use common config.

BUG=b:368495490
TEST=build coreboot image and boot on Intel RVP board. Disassemble
SSDT and confirm ACPI entries are correct for alc7xx device.

Change-Id: I5953d0fcb7b15368888901f88c5616757ac42877
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Signed-off-by: Naveen M <naveen.m@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85282
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2024-12-06 00:23:27 +00:00
Patrick Rudolph
d3aa108acf drivers/ipmi/ocp: Add missing include
Include stddef.h to fix the compiler error when using ipmi_ocp.h:
src/drivers/ipmi/ocp/ipmi_ocp.h:199:44: error: unknown type name 'size_t'

Change-Id: Iccd131295263460a4939e51e12ece87ea22c417c
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85317
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-12-05 04:47:02 +00:00
Felix Held
ce01117aa5 drivers/spi: add RPMC support
Add functions to send the RPMC-related commands to a RPMC-capable SPI
flash to provision the root key, update the HMAC key, increment the
monotonic counter, and request the monotonic counter data. To talk to
the flash chip, the command bytes and polling mechanism described in the
SFDP data structure of the flash are used.

The JESD260 specification was used as a reference.

Some of inspiration was taken from
github.com/teslamotors/coreboot/tree/tesla-4.12-amd

TEST=When used with the later patch that calls some of the functions
added in this patch, sending the RPMC increment monotonic counter
command to the RPMC-capable SPI flash, in this case W74M12JW, is
successful.

Change-Id: Ia9bd69d0105c66bf5ecb6c90e8c782a81912bd40
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84837
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-12-03 17:40:39 +00:00
Nicholas Sudsgaard
2a71a804cf drivers/pc80/pc: Clean up formatting of PS/2 related ASL code
This change corrects the indentation and also does the following to have
the ASL code written in a more canonical style:

  - Add space between the operator name and "(".
  - Use uppercase for hexadecimal values.

Change-Id: Ib946599f8ab4d68b16867912743f4a7a5bc0307d
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85281
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2024-11-27 22:11:46 +00:00
Jeremy Compostella
83fb3b70f0 drivers/wifi: Support Drive Strength BRI Rsp Table
Drive Strength BRI Rsp Object provides information from the OEM
platforms if they have replaced the Bluetooth Radio Interface resistor
to overcome the potential STEP errors on their designs. Based on
configuration, CNV firmware shall adjust the BRI Rsp line drive
strength.

The bri_resistor_value is encoded as follow:

|  Bit | Val | Description                                 | Default |
|------+-----+---------------------------------------------+---------|
|    0 |   0 | Device FW default values                    |       1 |
|      |   1 | Override device FW default values           |         |
|  3:1 |   0 | Reserved (shall be set to 0)                |       0 |
|  7:4 |   0 | DSBR override values (only if bit 0 is set) |     0xf |
| 31:7 |   0 | Reserved (shall be set to 0)                |       0 |

Possible values:
- 0xf1 (default): indicates that the resistor on board is 33 Ohm
- 0x0 or 0xb1: indicates that the resistor on board is 10 Ohm

The implementation follows document 559910 Intel Connectivity
Platforms BIOS Guideline revision 9.2 specification.

BUG=b:346600091
TEST=DSBR methods are added to the wifi device and bluetooth companion
     device and they return the data supplied by the SAR binary blob

Change-Id: Iebe95815c944d045f4cf686abcd1874a8a45e300
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85017
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-11-27 21:28:41 +00:00
Jeremy Compostella
1e8c6819b1 drivers/wifi: Support Wi-Fi PHY Filter Configuration
This feature provides ability to provide Wi-Fi PHY filter
Configuration. A well-defined dedicated filter on particular platform
can be used to perform the maximum Wi-Fi performance.

The implementation follows document 559910 Intel Connectivity
Platforms BIOS Guideline revision 9.2 specification.

BUG=b:346600091
TEST=WPFC method is added to the wifi device and return the data
     supplied by the SAR binary blob

Change-Id: Iebe95815c944d045f4cf686abcd1874a8a45e270
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84948
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-11-27 21:28:34 +00:00
Jeremy Compostella
c8ab1db0c6 drivers/wifi: Support Extended Bluetooth Regulatory Descriptor
Extended Bluetooth Regulatory Descriptor (EBRD) SAR/RFE are safety
regulations for limiting antenna radiation near human contact. EBRD
provides option to provide up to three sets of TX power limits and
power restrictions.

As the EBRD table is related to the revision 2 of the BRDS, this
commit also adds support for this new revision.

The implementation follows document 559910 Intel Connectivity
Platforms BIOS Guideline revision 9.2 specification.

BUG=b:346600091
TEST=EBRD method is added to the bluetooth companion device and
     return the data supplied by the SAR binary blob

Change-Id: Iebe95815c944d045f4cf686abcd1874a8a45e250
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84947
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-11-27 21:28:28 +00:00
Jeremy Compostella
386b5a9ddf drivers/wifi: Support Bluetooth Dual Mac Mode
This feature provides ability to set the Bluetooth Dual Mac Mode
setting.

The implementation follows document 559910 Intel Connectivity
Platforms BIOS Guideline revision 9.2 specification.

BUG=b:346600091
TEST=BDMM method is added to the bluetooth companion device and
     return the data supplied by the SAR binary blob

Change-Id: Iebe95815c944d045f4cf686abcd1874a8a45e240
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84946
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2024-11-27 21:28:22 +00:00
Jeremy Compostella
6e941f99da drivers/wifi: Support Ultra High Band Country Selection
This feature provides ability to set the Bluetooth Ultra High
Band (UHB) settings per country. The bluetooth UHB country selection
is defined as follow (default is 0):

|   Bit | Value |                                                   |
|-------+-------+---------------------------------------------------|
|     0 |     0 | No override; use BT device settings               |
|       |     1 | Force disable BT in all countries that are not    |
|       |       | defined in the following bits                     |
|     1 |     0 | USA 6GHz BT disable                               |
|       |     1 | 6GHz BT allowed in the USA (enabled only if the   |
|       |       | device is certified to the USA)                   |
|     2 |     0 | Rest of the World 6GHz BT disable                 |
|       |     1 | 6GHz BT allowed in the Rest of the World (enabled |
|       |       | only if the device is certified to the rest       |
|       |       | of the world)                                     |
|     3 |     0 | EU countries 6GHz BT disable                      |
|       |     1 | 6GHz BT allowed in the EU countries (enabled only |
|       |       | if the device is certified to the EU countries)   |
|     4 |     0 | South Korea 6GHz BT disable                       |
|       |     1 | 6GHz BT allowed in the South Korea (enabled only  |
|       |       | if the device is certified to the South Korea)    |
|     5 |     0 | Brazil 6GHz BT disable                            |
|       |     1 | 6GHz BT allowed in the Brazil (enabled only if    |
|       |       | the device is certified to the Brazil)            |
|     6 |     0 | Chile 6GHz BT disable                             |
|       |     1 | 6GHz BT allowed in the Chile (enabled only if the |
|       |       | device is certified to the Chile)                 |
|     7 |     0 | Japan 6GHz BT disable                             |
|       |     1 | 6GHz BT allowed in Japan (enabled only if the     |
|       |       | device is certified to Japan)                     |
|     8 |     0 | Canada 6GHz BT disable                            |
|       |     1 | 6GHz BT allowed in Canada (enabled only if the    |
|       |       | device is certified to Canada)                    |
|     9 |     0 | Morocco 6GHz BT disable                           |
|       |     1 | 6GHz BT allowed in the Morocco (enabled only if   |
|       |       | the device is certified to the Morocco)           |
|    10 |     0 | Mongolia 6GHz BT disable                          |
|       |     1 | 6GHz BT allowed in the Mongolia (enabled only if  |
|       |       | the device is certified to the Mongolia)          |
|    11 |     0 | Malaysia 6GHz BT disable                          |
|       |     1 | 6GHz BT allowed in the Malaysia (enabled only if  |
|       |       | the device is certified to the Malaysia)          |
| 31:12 |     0 | Reserved Should set to zeros                      |

The implementation follows document 559910 Intel Connectivity
Platforms BIOS Guideline revision 9.2 specification.

BUG=b:346600091
TEST=BUCS method is added to the bluetooth companion device and
     return the data supplied by the SAR binary blob

Change-Id: Iebe95815c944d045f4cf686abcd1874a8a45e231
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84945
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2024-11-27 21:28:17 +00:00
Jeremy Compostella
e9b36b03ce drivers/wifi: Support Bluetooth Bands Selection Mode
This feature provides ability to provide Bluetooth Bands Selection
Mode. The bluetooth bands selection mode is defined as follow:

  |  Bit | Band GHz | Value | Description          | Default |
  |------+----------+-------+----------------------+---------|
  |    0 | 2.4GHz   |     0 | Controlled by NIC    |       0 |
  |      |          |     1 | Force disable 2.4GHz |         |
  |    1 | 5.2GHz   |     0 | Controlled by NIC    |       0 |
  |      |          |     1 | Force disable 5.2GHz |         |
  |    2 | 5.8GHz   |     0 | Controlled by NIC    |       0 |
  |      |          |     1 | Force disable 5.8GHz |         |
  |    3 | 6.2GHz   |     0 | Controlled by NIC    |       0 |
  |      |          |     1 | Force disable 6.2GHz |         |
  | 31:4 | Reserved |       | NA                   |       0 |

The implementation follows document 559910 Intel Connectivity
Platforms BIOS Guideline revision 9.2 specification.

BUG=b:346600091
TEST=BBSM method is added to the bluetooth companion device and
     return the data supplied by the SAR binary blob

Change-Id: Iebe95815c944d045f4cf686abcd1874a8a45e230
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84944
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2024-11-27 21:28:11 +00:00
Jeremy Compostella
67dff1b2b1 drivers/wifi: Support Bluetooth Dual Chain Mode
This feature provides ability to provide dual chain setting.

The implementation follows document 559910 Intel Connectivity
Platforms BIOS Guideline revision 9.2 specification.

BUG=b:346600091
TEST=BDCM method is added to the bluetooth companion device and
     return the data supplied by the SAR binary blob

Change-Id: Iebe95815c944d045f4cf686abcd1874a8a45e220
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84943
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2024-11-27 21:28:05 +00:00
Jeremy Compostella
3f535d3a0d drivers/wifi: Support Bluetooth BiQuad Bypass Filter
This feature provides ability to identify non-LTE platform and disable
BiQuad Bypass filter logic in hardware for Bluetooth usecases reducing
device power consumption.

The implementation follows document 559910 Intel Connectivity
Platforms BIOS Guideline revision 9.2 specification.

BUG=b:346600091
TEST=BBFB method is added to the bluetooth companion device and
     return the data supplied by the SAR binary blob

Change-Id: Iebe95815c944d045f4cf686abcd1874a8a45e213
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84942
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2024-11-27 21:27:59 +00:00
Jeremy Compostella
354cba21a4 drivers/wifi: Support Bluetooth Per-Platform Antenna Gain
The ACPI BPAG method provide information to controls the antenna gain
method to be used per country.

The antenna gain mode is a bit field (0 - disabled, 1 -enabled)
defined as follow:
- Bit 0 - Antenna gain in EU
- Bit 1 - Antenna gain in China Mainland

The implementation follows document 559910 Intel Connectivity
Platforms BIOS Guideline revision 9.2 specification.

BUG=b:346600091
TEST=BPAG method is added to the bluetooth companion device and return
     the data supplied by the SAR binary blob

Change-Id: Iebe95815c944d045f4cf686abcd1874a8a45e210
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84941
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2024-11-27 21:27:53 +00:00
Elyes Haouas
a12c8de14b tree: Remove unused <bootstate.h>
Remove "include <bootstate.h>" when it is not used.

Change-Id: Ic27acf9f8dfbbccb8f48a139032b1463e7185030
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85216
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-11-21 04:27:13 +00:00
Jeremy Compostella
92f90bcd96 drivers/wifi: Remove unnecessary data structure copy
The current design has the emit_wifi_sar_acpi_structures() function
load and unload the SAR binary. Since DSM and Bluetooth SAR data
structures are used outside this function, they are being copied into
data structure located in the calling function stack. This overhead is
unnecessary as loading and unloading the SAR binary could be done by
the calling function.

In addition, we are about to add several Bluetooth related data
structures which, under the current design, would require to add even
more data structure copy operations.

BUG=b:346600091
TEST=Wifi/Bluetooth SAR ACPI tables are identical before and after
     this commit

Change-Id: Iebe95815c944d045f4cf686abcd1874a8a45e207
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84940
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2024-11-19 04:23:58 +00:00
Patrick Rudolph
df7561552f drivers/intel/gma/acpi: Limit OpRegion size
Limit the ACPI OpRegion to cover only MBOX3. This seems to fix
BSOD errors seen on Windows 10/11 as reported at [1].

1: https://ticket.coreboot.org/issues/327

Change-Id: Ia2affa799e5cd84c0a03330e0f78919755f0e8ac
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81295
Reviewed-by: Joel Linn <jl_coreboot@conductive.de>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
2024-11-17 05:33:49 +00:00
Felix Held
6ab9623f46 drivers/spi/spi_flash_sfdp: use spi_crop_chunk when reading SFDP data
The basic flash parameter table described in JESB216F can be up to 23
DWORDs (92 bytes) long which is larger than the 47 byte SPI data buffer
in the AMD SoCs which also contains the data from the command buffer
except the command byte.

TEST=Calling 'read_sfdp_data' with a data length of 256 bytes which is
larger than the buffer of the AMD SPI host controller now works and
returns the SFDP data expected from the W74M12JW SPI flash:

0x00: 53 46 44 50 06 01 02 ff 00 06 01 10 80 00 00 ff  SFDP............
0x10: 84 00 01 02 d0 00 00 ff 03 00 01 02 f0 00 00 ff  ................
0x20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
...
0x80: e5 20 f9 ff ff ff ff 07 44 eb 08 6b 08 3b 42 bb  . ......D..k.;B.
0x90: fe ff ff ff ff ff 00 00 ff ff 40 eb 0c 20 0f 52  ..........@.. .R
0xa0: 10 d8 00 00 36 02 a6 00 82 ea 14 c9 e9 63 76 33  ....6........cv3
0xb0: 7a 75 7a 75 f7 bd d5 5c 19 f7 4d ff e9 30 f8 80  zuzu...\..M..0..
0xc0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
0xd0: 00 00 f0 ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
0xe0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
0xf0: 38 9b 96 f0 a5 ad a5 ff ff ff ff ff ff ff ff ff  8...............

Change-Id: Ia602a54566c9e9cffaebc813ee493254d966e9e4
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85059
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@amd.corp-partner.google.com>
2024-11-12 15:41:22 +00:00
Felix Held
95d8edadcb drivers/spi: add RPMC info to spi_flash struct
Fill 'rpmc_caps' struct inside the 'spi_flash' struct with the RPMC info
from the SFDP table.

TEST=On a board with a W74M12JW SPI flash chip, the 'rpmc_caps' struct
has the expected entries (RPMC available, OP2 extended status as polling
method, 4 RPMC counters, OP1 is 0x9b, and OP2 is 0x96).

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I3a8332bffe93e1691f6fc87c3936025f158f3ab9
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85009
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@amd.corp-partner.google.com>
Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
2024-11-12 15:41:11 +00:00
Felix Held
8c9e6a1f1d drivers/spi/spi_flash_sfdp: add SFDP support to get RPMC parameters
JESD216F.02 and JESD260 were used as a reference.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I3a1f7a5d16dd3ca6c8263b617ae9c21184b6a5b9
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85008
Reviewed-by: Matt DeVillier <matt.devillier@amd.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-11-12 15:40:38 +00:00
Felix Held
3040e99679 drivers/spi/spi_flash_sfdp: add basic SFDP support
Add basic support for the Serial Flash Discoverable Parameters (SFDP)
standard which can be used to discover the parameters to interact with
any SPI flash chip that supports this mechanism. This commit adds
functionality to find specific SFDP parameter headers and print all SFDP
parameter headers, but not to parse any SFDP parameter table. This is a
preparation for a follow-up patch that adds support to parse the RPMC
SFDP parameter table. Since 'find_sfdp_parameter_header' is only used in
the next patch, it's marked as static inline in this commit so that the
code still build; the 'inline' keyword will be removed again in that
follow-up patch.

For now, only the legacy access protocol using single bit SPI transfers
is supported, but this should cover most of the SPI NOR flash chips. In
any other case, the code will error out. It's also assumed that the SFDP
data blocks read from the SPI flash chip are small enough to fit into
the SPI host controller buffer and don't need to be broken up into
multiple transfers. This limitation will be addressed in a follow-up
patch.

JESD216F.02 was used as a reference.

TEST=On a board with a W74M12JW SPI flash chip, calling
'spi_flash_print_sfdp_headers' prints this on the console output:

Manufacturer: ef
SF: Detected ef 6018 with sector size 0x1000, total 0x1000000
SF: Exiting 4-byte addressing mode
SFDP header found in SPI flash.
major rev 0x1, minor rev 0x6, access protocol 0xff, number of headers 3
SFPD header with index 0:
  table ID 0xff00, major rev 0x1, minor rev 0x6
  table pointer 0x80, table length DWORDS 0x10
SFPD header with index 1:
  table ID 0xff84, major rev 0x1, minor rev 0x0
  table pointer 0xd0, table length DWORDS 0x2
SFPD header with index 2:
  table ID 0xff03, major rev 0x1, minor rev 0x0
  table pointer 0xf0, table length DWORDS 0x2

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I5a1706acf7d60fd64292e8f0677992ab4aebf46a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84786
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
2024-11-12 15:40:24 +00:00
Felix Held
c6f60b1ddf drivers/spi/spi_flash: introduce 'spi_flash_cmd_multi'
A following patch that adds some support for reading the serial flash
discoverable parameters (SFDP) data structures needs to send more than
just the one command byte that 'spi_flash_cmd' supports. To be able to
do this, introduce the 'spi_flash_cmd_multi' function which supports
sending multiple bytes before reading back some bytes. The prototype is
added to drivers/spi/spi_flash_internal.h since only other files in the
same directory are supposed to be using that function.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I1f3872463249240c0a32e2825e4302894e856b2e
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84789
Reviewed-by: Matt DeVillier <matt.devillier@amd.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-11-07 15:09:48 +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
Sean Rhodes
8db6138115 drivers/usb/acpi: Account for the lack of a reset gpio
Adjust the DSM to return 0x00 (unsupported) when no reset gpio
is passed to the driver. Leave the _RST method to comply with
the ACPI specification but omit the BTRT method as it won't do
anything.

Change-Id: I9f8e98fb4f5a22b2f7617b131a3d71cf90f5bc80
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84658
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
2024-10-22 09:19:26 +00:00
Felix Held
a820b441e4 drivers/spi/spi_flash_internal: add missing types.h include
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I7c5477bbc248a21e21f3a640bdb81304a1bce38c
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84788
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2024-10-21 01:14:13 +00:00
Yang Wu
d11ee49521 drivers/mipi: Update brightness for IVO_T109NW41 panel
The current panel brightness is only 360 nits. Adjust the power and
gamma to optimize the panel brightness. The brightness after adjustment
is 390 nits.

BUG=b:320892589
TEST=boot ciri with IVO_T109NW41 panel and see firmware screen
BRANCH=geralt

Change-Id: I760c37bf915bb40ad2efa7c947034cb168938f2a
Signed-off-by: Yang Wu <wuyang5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84758
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: cong yang <yangcong5@huaqin.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2024-10-16 15:20:59 +00:00
Sean Rhodes
2cd06b79b1 drivers/usb/acpi: Remove Tile Activation Method in Intel Bluetooth driver
Linux has never supported this feature, and according to our FAE, the
Windows driver dropped support for it in 2022 so remove it.

Change-Id: I4f0b6108bb5db657490a8b9395bb99378fc63c4d
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84624
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
2024-10-14 15:34:49 +00:00
Sean Rhodes
144baae28c drivers/usb/acpi: Add support for RTD3 for Intel Bluetooth
Add support for RTD3 for Intel Bluetooth. This is done by
controlling the enable GPIO (GPP_VGPIO_0 for most SOCs) that
exists on all wireless cards since Jefferson Peak.

The exception is GalePeak2, which uses VSEC and this driver doesn't
support that.

Change-Id: Ibea97ab0ae0a9f1eb6aaca43d831bb4ce7bdc02e
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84626
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
2024-10-14 15:34:21 +00:00
Sean Rhodes
229d8fa286 drivers/usb/acpi: Add AOLD Method for Intel Bluetooth
Add AOLD Method, which returns an integer based on
whether Audio Offload is enabled. Leave the existing
control of Audio Offload in `soc/soc_chip.h`. Add
`cnvi_bt_audio_offload` in the USB ACPI `chip.h` to
control the aforementioned return value.

The value in `soc/soc_chip.h` and `chip.h` should
match.

Change-Id: Idb804fb1cf0edef4a98479a6261ca68255dbf075
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84134
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-10-14 15:32:06 +00:00
Kyösti Mälkki
71c8dac9ca drivers/pc80/tpm: Fix tis_readresponse()
TPM_RDRESP_NEED_DELAY was introduced in 2018 in CB:25322 after
observing errors with SLB9635 by Infineon. It has been confirmed
also SLB9670 and SLB9672 require a fix or delay here.

Presumably, prior to CB:4388 SLB9635 did not have this problem,
as this particular TPM shipped with samsung/lumpy Chromebook since
2011. In CB:4388 the code changed from polling the status register
(+burst_count) using a 32bit read to separated 8bit reads.

So far, experiments on samsung/lumpy and SLB9635 indicate that
it would be sufficient to add a single tpm_read_status() call
to see TIS_STS_DATA_AVAILABLE as set at the time of evaluating
the loop exit condition.

Change-Id: If5c3e93c7946ebf8226f7bba47b38253f6920c61
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Co-authored-by: Bill XIE <persmule@hardenedlinux.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/76315
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bill XIE <persmule@hardenedlinux.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2024-10-14 15:25:57 +00:00
Felix Held
a5f61e09a0 drivers/spi: add Numonyx and Micron names to STMicro case
STMicro first moved their SPI NOR flash business to Numonyx which was a
joint venture with Intel which later got sold to Micron, so add a
comment to the VENDOR_ID_STMICRO JEDEC manufacturer ID define and
mention all 3 companies that have sold SPI NOR flash chips using this
manufacturer ID to the Kconfig help text of SPI_FLASH_STMICRO.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I7886396d8f0a9766f568a221c0b5ade02489060b
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84018
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2024-10-09 18:09:42 +00:00
Elyes Haouas
f7b4bdeea8 drivers/ocp/ewl: Remove space after a cast
Change-Id: I50ee0adc2f70ad593815783078145cc4b494f70c
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/77732
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-10-09 17:27:37 +00:00
Sean Rhodes
0b16bb85eb drivers/usb/acpi: Add _PRR Method for Intel Bluetooth
Since version 6.6, Linux has warned about the lack of a
_PRR Method being available for Intel Bluetooth. Add one
that follows the recommendations from Intel in their
connectivity integrated guide, that uses the reset
delay set by the DSM.

Change-Id: I9c7fd286e8630d77d79d1d7cd113ce3a3d3d0fe3
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84145
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-10-09 01:24:39 +00:00
Sean Rhodes
ac5d5172ab drivers/usb/acpi: Move the CNMT Mutex to USB
The Intel Bluetooth driver can be combined with either CNVi, or
full PCI wireless cards such as the AX210. Move it to the USB
code so it can be used by either or.

Change-Id: Ib456b1870501182b2d8788e5d53bbf4d7981f91b
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84627
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-10-09 01:23:03 +00:00
Sean Rhodes
7a39531af6 drivers/usb/acpi: Move Intel Bluetooth functions to separate file
The code for Intel Bluetooth is unrelated to all other devices, and
needs to grow in size - move it to another file.

Change-Id: I65ccb9f2fd95b07fa63866485920539adc474873
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84625
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-10-09 01:19:41 +00:00
Varun Upadhyay
e7a0bf3080 drivers/soundwire: Support Realtek ALC721 codec
This change updates SoundWire driver to support ALC721 audio codec
based on config flag.

reference datasheet: Realtek ALC721-VA0-CG Rev. 0.34

BUG=b:368495490
TEST=This driver was tested on Intel RVP with Add-on ALC721 codec card
by testing soundcard binding/devices are detected and check for audio
playback.

Change-Id: I1022ee91b16374d0d4d07e5198226595d61403a6
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Signed-off-by: Naveen M <naveen.m@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84610
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2024-10-07 20:40:20 +00:00
Varun Upadhyay
18890c8206 drivers/soundwire: Unify SoundWire ALC codec names under ALC 7 Series
This change removes individual conditional blocks for specific ALC
codec models and introduces a common name for the entire ALC 7 Series
configuration.

TEST=Build and test with DRIVERS_SOUNDWIRE_ALC_BASE_7XX.

Change-Id: Ib7c33351207df472cd11243244063b007c24d9bf
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84646
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2024-10-07 20:39:21 +00:00
Sean Rhodes
6f693d3c1c drivers/tpm: Remove unused 2nd argument in FUNC method
The method "FUNC" allows 1 argument, so remove the
incorrectly referenced and unused second arguemnt.

This fixes:
    ToInteger (Arg1, Local1)
        Error    6006 - ^ Method argument is not initialized (Arg1)

Change-Id: If5e402579a2caff169e12253e5d9c2c493902ec7
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84605
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
2024-10-02 11:50:52 +00:00
Subrata Banik
2f8bee7d54 soc/intel: Deprecate SoC-specific global reset status configs
This change removes the SoC-specific `FSP_STATUS_GLOBAL_RESET_REQUIRED_X`
Kconfigs, as they are no longer necessary for handling FSP global reset
requests.

Previously, these Kconfigs were used to select a specific 32-bit reset
status code. However, with the introduction of FSP 2.4 and 64-bit
interfaces, the global reset status code can now vary between
architectures.

To address this, the FSP driver now sets the `FSP_STATUS_GLOBAL_RESET`
config to a common default value (depending upon most commonly used
global reset status code) based on the interface:
- 0x40000003 for 32-bit FSP interfaces
- 0x4000000000000003 for 64-bit FSP interfaces

This default can be overridden if an FSP implementation uses a
different status code (for example: Apollo Lake selects different FSP
reset status code as 0x40000005).

By removing the SoC-specific configurations, this change simplifies
global reset handling and ensures compatibility across different FSP
versions and platforms.

Below table shows the relationship between Platform, FSP and FSP Global
Reset Status:
+-----------------+--------------+-------------------------+
| Platform        |  FSP         |    Global Reset Status  |
+-----------------+--------------+-------------------------+
| Alder Lake      |  32-bit      |    0x40000003           |
+-----------------+--------------+-------------------------+
| Apollo Lake     |  32-bit      |    0x40000005           |
+-----------------+--------------+-------------------------+
| Cannon Lake     |  32-bit      |    0x40000003           |
+-----------------+--------------+-------------------------+
| Elkhart Lake    |  32-bit      |    0x40000003           |
+-----------------+--------------+-------------------------+
| Jasper Lake     |  32-bit      |    0x40000003           |
+-----------------+--------------+-------------------------+
| Meteor Lake     |  32-bit      |    0x40000003           |
+-----------------+--------------+-------------------------+
| Sky Lake        |  32-bit      |    0x40000003           |
+-----------------+--------------+-------------------------+
| Tiger Lake      |  32-bit      |    0x40000003           |
+-----------------+--------------+-------------------------+
| Panther Lake    |  64-bit      |    0x4000000000000003   |
+-----------------+--------------+-------------------------+

BUG=b:347669091
TEST=Verified FSP requested global reset functionality on google/rex0
(32-bit) and google/rex64 (64-bit) platforms.

w/ 32-bit FSP:

```
(Wdt) AllowKnownReset
[FspResetSystem2] FSP Reset Initiated
FSP returning control to Bootloader with reset required return status
40000003
FSPS, status=0x40000003
FSP: handling reset type, status=0x40000003
GLOBAL RESET!
global_reset() called!
HECI: Global Reset(Type:1) Command
```

w/ 64-bit FSP:

```
(Wdt) AllowKnownReset
[FspResetSystem2] FSP Reset Initiated
FSP returning control to Bootloader with reset required return status 3
FSPS, status=0x4000000000000003
FSP: handling reset type, status=0x4000000000000003
GLOBAL RESET!
global_reset() called!
HECI: Global Reset(Type:1) Command
```

Change-Id: I32bdbf7ea6afa7d5e5f91ea96d887719d26a593f
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84572
Reviewed-by: Christian Walter <christian.walter@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2024-10-02 03:06:02 +00:00
Sean Rhodes
2ec9addc30 drivers/usb/acpi: Add a Power Resource for Intel Bluetooth
Add a Power Resource for Intel Bluetooth, that can reset
the Bluetooth using the delay configured in the DSM.

Change-Id: I3b25fd180e21100e3cb001fc6ba0da7f47b2ad12
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84146
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-10-01 16:37:51 +00:00
Nicholas Sudsgaard
16fe2eec08 drivers/i2c/at24rf08c: Disable DRIVER_LENOVO_SERIALS by default
This should be the sane default, as having this option enabled when the
AT24RF08C (Asset Identification EEPROM) is not present on the mainboard
can cause SMBIOS table entries to become "*INVALID*". This can,
for example, result in strange hostnames when an OS installer uses
SMBIOS information to automatically generate one. On the other hand,
the coreboot generated SMBIOS tables will at least always contain basic
information. Therefore, this driver should be treated as an enhancement
rather than a default.

Currently, the following mainboards have this option disabled:

  - ThinkCentre M710s
  - ThinkCentre M700 / M900 Tiny
  - Haswell ThinkPads
    - ThinkPad T440p
    - ThinkPad W541

Therefore, we can remove this option entirely on these mainboards. Note
that there may be other mainboards which do not have this chip present
but still have the option enabled. However, this requires a more
detailed investigation which would be out of scope of this change.

TESTS=Timeless builds on lenovo mainboards produce the same binary.

config INCLUDE_CONFIG_FILE
	default n

Was temporarily added to `mb/lenovo/Kconfig` during these tests, as
while the configuration does not change, the order of entries do.
Therefore, technically producing a different binary when included.

Change-Id: I5bb101bd6696c39718ee779426d0ec3e721e1b51
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84544
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2024-09-30 11:09:34 +00:00
Nico Huber
520f20ef52 libgfxinit: Allow to configure screen rotation
This allows to configure a default screen rotation in 90-degree
steps. The framebuffer contents will then be displayed rotated,
by the same amount in the other direction; i.e. if you turn the
screen to the left, the picture has to be rotated to the right
to accommodate.

This is only supported by libgfxinit from Skylake / Apollo Lake
on (earlier GPUs didn't support the 90-degree steps anyway) and
it only works with the linear-framebuffer option.

Change-Id: Iac75cefbd34f28c55ec20ee152fe67351cc48653
Signed-off-by: Nico Huber <nico.huber@secunet.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/38922
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2024-09-30 11:01:09 +00:00
Jayvik Desai
220d8e009b driver/intel/ish: Add config to indicate the presence of ISH MAIN firmware
This commit introduces a new config DRIVER_INTEL_ISH_HAS_MAIN_FW to
indicate that the Intel Sensor Hub (ISH) is using the ISH MAIN firmware.
The ISH MAIN firmware is located in rootfs, hence we no longer need to
store the ISH BUP version in the CSE partition.

When this config is enabled, fetching the ISH BUP version from the CSE
firmware partition is skipped.

BUG=b:360144613
TEST=Local build successful and tested on trulo by toggling the
config. Enabling this config skips printing the ISH version in cbmem.

Change-Id: I6cacf7b44ce6895ecb96db295d184c7b7d5a872c
Signed-off-by: Jayvik Desai <jayvik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84493
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
2024-09-27 05:47:48 +00:00
Patrick Rudolph
6fe6e78e78 drivers/aspeed/common: Add AST2600 support
Add support for AST2600 as found on Intel Archer City CRB by using
the code found on Linux's ast drm driver.

While on it do minor modifications found on the Linux drm driver
that also affect the other ast chips.

New log messages:
[INFO ]  ASpeed AST2050: initializing video device
[INFO ]  ast_detect_chip: VGA not enabled on entry, requesting chip POST
[INFO ]  ast_detect_config_mode: Using P2A bridge for configuration
[INFO ]  ast_detect_chip: AST 2600 detected
[INFO ]  ast_detect_chip: Analog VGA only
[INFO ]  ast_driver_load: dram MCLK=890316000 MHz type=3 bus_width=16 size=01000000
[ERROR]  No header found
[INFO ]  ast_select_mode: Failed to decode EDID
[DEBUG]  Assuming VGA for KVM
[DEBUG]  AST: Display has 1024px x 768px
[DEBUG]  Using framebuffer 1024px x 768px pitch 4096 @ 32 BPP
[INFO ]  framebuffer_info: bytes_per_line: 4096, bits_per_pixel: 32
[INFO ]                     x_res x y_res: 1024 x 768, size: 3145728 at 0x94000000
[INFO ]  ASpeed high resolution framebuffer initialized

TEST: Booted on Intel/ArcherCity CRB and used the UEFI firmware menu
      over KVM using native graphics init.

Change-Id: I3d2d58d493706673c1b2ba4953967b1641bd6395
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84425
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2024-09-26 15:09:17 +00:00
Subrata Banik
ef386e0768 drivers/intel/fsp2_0: Consolidate BUILDING_WITH_DEBUG_FSP option
Move the `BUILDING_WITH_DEBUG_FSP` Kconfig option from SoC-specific
files to the FSP2_0 driver Kconfig to avoid duplication. Also slightly
improves the option's prompt and help text.

TEST=Built and booted google/rex successfully.

Change-Id: I5c3dce59c396f6c1665a3ed1b8c1bb5df0f5a8d4
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84220
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2024-09-07 08:25:54 +00:00
Subrata Banik
9947d54577 drivers/intel/fsp2_0: Add Kconfig option to control MBP HOB creation
This patch adds a new Kconfig option `FSP_PUBLISH_MBP_HOB` to
control the creation of the ME_BIOS_PAYLOAD_HOB (MBP HOB) by FSP.

Disabling this option can improve boot time on platforms that
do not utilize the MBP HOB, such as ChromeOS devices.

The option is disabled by default on ChromeOS and enabled
by default on other platforms.

On ADL-P based platforms, this option is forced to be enabled
as ADL-P FSP relies on MBP HOB for ChipsetInit version for
ChipsetInit sync.

Removed SoC specific implementation of `FSP_PUBLISH_MBP_HOB` config
from MTL and TGL config file.

TEST=Tested on ADL-P and ADL-N platforms. Verified that MBP HOB is
created when `FSP_PUBLISH_MBP_HOB` is enabled and not created when
it is disabled.
Also verified that the system boots successfully in both cases.

Change-Id: I21da00259c0b9bcca6f545291a6259e9cce8d900
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84217
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2024-09-07 08:25:49 +00:00
Sean Rhodes
9f6cb3e611 drivers/i2c/generic: Remove erroneous acpigen_pop_len
There are one too many acpigen_pop_len calls in the code
to generate the ROTM; remove one to fix an EMERG warning:
    [EMERG] ASSERTION_ERROR: file `src/acpi/acpigen.c`, line 38

The extra acpigen_pop_len() call was added commit
45d2c3d543 ("i2c/drivers/generic: Return ROTM in a package").

Change-Id: I913022144813f7f65eac1bcb7c97656f2c513c0b
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84197
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2024-09-06 13:03:53 +00:00
Arthur Heymans
070561a295 drivers/intel/gma: Fix mismatching types for fb_add_framebuffer_info
GCC LTO found this.

Change-Id: I2d5a9a86dbb91a5505891a30c6e9072b1b4dfc92
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84056
Reviewed-by: Nico Huber <nico.h@gmx.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-09-02 09:33:59 +00:00
Sean Rhodes
5665bcac4f drivers/usb/acpi: Add DSM for Intel Bluetooth
Add support for creating a DSM Method for Intel Bluetooth that
is outlined in Intel's connectivity integrated guide (which has
no document number).

It supports two GUIDs:

Set Tile Activaction (2d19d3e1-5708-4696-bd5b-2c3dbae2d6a9)
BIT(0)  Indicates whether the device supports other functions
BIT(1)  Set Tile Activation

Check/Set Reset Delay (aa10f4e0-81ac-4233-abf6-3b2ac50e28d9)
BIT(0)  Indicates whether the device supports other functions
BIT(1)  Set Bluetooth reset timing

Change-Id: Icc18f867604876b27ced2ee4356e47b3aa6b4f74
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84133
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-09-02 09:12:20 +00:00