Commit Graph

51684 Commits

Author SHA1 Message Date
Shelley Chen 978b47463e soc/qualcomm/sc7280: init eMMC
Use common sdhci driver in coreboot to initialize eMMC for sc7280.
This should allow us to initialize eMMC earlier in the boot process,
taking it out of the critical path.

BUG=b:254092907
BRANCH=None
TEST=emerge-herobrine coreboot chromeos-bootimage

Change-Id: Ifa88da500e82b44d7523f2e68763e01399c89f4d
Signed-off-by: Shelley Chen <shchen@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/71829
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-08 17:00:27 +00:00
Shelley Chen 8488b5948d soc/qualcomm/common: Add sdhci_msm_init function
Porting from depthcharge changes for supporting eMMC driver
functionality with standard SDHC controller on Qualcomm chipsets.
sdhci_msm_init() needs to be run before the standard
sdhci_mem_controller initiailzation.

BUG=b:254092907
BRANCH=None
TEST=emerge-herobrine coreboot

Change-Id: I6f4fd1360af1082b335f9cc3046871ce9963b5d0
Signed-off-by: Shelley Chen <shchen@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72634
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-08 16:59:35 +00:00
Shelley Chen 8c692d7dfa commonlib/storage: Add attach callback to sdhci_ctrlr
Adding a attach callback function pointer in case a platform needs
to execute anything before the standard initialization of the sdhci
mem controller.

BUG=b:254092907
BRANCH=None
TEST=emerge-herobrine coreboot

Change-Id: I0f37ec09d083922cad5ecd3c47b184cf3311fe2d
Signed-off-by: Shelley Chen <shchen@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72633
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
2023-02-08 16:59:28 +00:00
Felix Held 3ecf377e30 soc/amd: use CPUID_FROM_FMS macro instead of magic numbers
Port over the remaining AMD SoCs to use CPUID_FROM_FMS. The Glinda CPUID
still needs to be updated to the actual CPUID, but for now just change
it to use CPUID_FROM_FMS.

TEST=Resulting image of timeless build for Gardenia (Stoneyridge),
Majolica (Cezanne), Chausie (Mendocino), Mayan (Phoenix) and Birman
(Glinda) don't change.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Ia508f857d06f3c15e3ac9f813302471348ce3d89
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72862
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-08 15:52:56 +00:00
Felix Held 8f705b9fad soc/amd/phoenix/soc_util: add get_soc_type
Implement a get_soc_type function to determine if the silicon the code
is running on is Phoenix or Phoenix 2. This will for example be needed
to provide the correct DXIO descriptor table for the SoC.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I5f2b668b83432426b04e7f1354b694ddd6c300d6
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72861
Reviewed-by: ritul guru <ritul.bits@gmail.com>
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-08 15:50:46 +00:00
Felix Held b6969db5c2 soc/amd/picasso/soc_util: use cpuid_match
Now that there is a cpuid_match function, we can use it instead of doing
basically the same thing manually. In the functions is_fam17_1x and
is_fam17_2x both the stepping number and the lower nibble of the model
number are masked out. To avoid having magic constants in the code,
introduce the CPUID_ALL_STEPPINGS_AND_BASE_MODELS_MASK definition.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I758f9564c08c62c747cc4f93a8d6b540a1834a62
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72860
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-08 15:49:48 +00:00
Felix Held e1a84db3e0 arch/x86/cpu: move cpuid_match to corresponding header file
Since the functionality of cpuid_match is also useful outside of
arch/x86/cpu.c and it's a relatively simple function, move its
definition as inline function to the header file.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Ic96746b33b01781543f60cf91904af35418e572d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72859
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-08 15:48:44 +00:00
Ron Lee 558952ae7c mb/google/brya: Add usb_lpm_incapable for Type-C port with PS8815
Intel ADL-P USB Type-C ports are not compatible with Parade PS8815
retimer on USB U1/U2 transition. The usb_lpm_incapable config is
used to disable USB U1/U2 transition for these Type-C ports.

This patch add usb_lpm_incapable config for the following variants
with PS8815 retimer:
 - kinox           MLB: C0
 - volmar          DB: C1
 - osiris          MLB: C0/C1
 - mithrax         DB: C1
 - felwinter       DB: C1
 - taeko           DB: C1
 - gimble          DB: C1
 - gimble4es       DB: C1
 - taniks          DB: C1
 - marasov         DB: C2
 - gaelin          MLB: C0/C1
 - skolas          DB: C1
 - skolas4es       DB: C1
 - brya0           DB: C1

BUG=b:253402457
TEST=Plug in device and check LPM sysfs nodes are disabled
localhost ~ # cat /sys/bus/usb/devices/2-X/power/usb3_hardware_lpm_u1
disabled
localhost ~ # cat /sys/bus/usb/devices/2-X/power/usb3_hardware_lpm_u2
disabled

Change-Id: Ie9246ff7908887404f49ec10ee781c8cba410557
Signed-off-by: Ron Lee <ron.lee@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/71925
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2023-02-08 15:47:29 +00:00
Sen Chu e40cbcf036 mb/google/geralt: Add support for VM18 in regulator.c
Add regulator VM18 support to supply power for BOE_TV110C9M_LL0.

BUG=b:244208960
TEST=test firmware display pass for BOE_TV110C9M_LL0 on Geralt.

Change-Id: I13bafbe10a18a18e253575fd107c9b415f28ef01
Signed-off-by: Sen Chu <sen.chu@mediatek.corp-partner.google.com>
Signed-off-by: Liju-Clr Chen <liju-clr.chen@mediatek.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72748
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Rex-BC Chen <rex-bc.chen@mediatek.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-08 15:41:11 +00:00
Sen Chu 012701970f soc/mediatek: Add support for regulator VM18
To provide power to MIPI panel BOE_TV110C9M_LL0, add support for
regulator VM18.

BUG=b:244208960
TEST=test firmware display pass for BOE_TV110C9M_LL0 on Geralt.

Change-Id: Ib8c3b2df1157b23b37492b1e9b1716903ea67799
Signed-off-by: Sen Chu <sen.chu@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72747
Reviewed-by: Rex-BC Chen <rex-bc.chen@mediatek.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2023-02-08 15:40:42 +00:00
Liju-Clr Chen bf5f821431 soc/mediatek: Remove unnecessary !! for boolean variable
Enable is already a boolean, so the !! is not needed.

BUG=None
TEST=build pass.

Change-Id: I25a7cec632f21a258b8364c82e25b59e55ab7453
Signed-off-by: Liju-Clr Chen <liju-clr.chen@mediatek.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72869
Reviewed-by: Rex-BC Chen <rex-bc.chen@mediatek.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2023-02-08 15:39:05 +00:00
Liju-Clr Chen 45d51a92ee mb/google/corsola: Use function to get regulator IDs
There might be inconsistence between regulator_id[] and
`enum mtk_regulator` when we need to add new regulator IDs for Geralt.
Therefore, we implement get_mt6366_regulator_id() to get regulator IDs.

BUG=None
TEST=build pass.

Change-Id: I3d28ebf2affe4e9464b1a7c1fb2bbb9e31d64a5e
Signed-off-by: Liju-Clr Chen <liju-clr.chen@mediatek.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72838
Reviewed-by: Rex-BC Chen <rex-bc.chen@mediatek.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2023-02-08 15:38:38 +00:00
Felix Held 6f375320c3 soc/amd/picasso: use CPUID_FROM_FMS macro instead of magic numbers
TEST=Resulting image of timeless build for Mandolin doesn't change.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I44cb7759206e9e1ce79fd57f62b9a844e52f7394
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72857
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-08 15:13:04 +00:00
Felix Held 180e414a80 arch/x86/include/cpu: introduce CPUID_FROM_FMS macro
Introduce a macro to get the raw CPUID leaf 1 EAX value from a given set
of CPU family, model and stepping. The processor type in bits 12 and 13
is assumed to be always be zero; at least this is the case for all
CPUIDs that are currently in the coreboot tree. This can be used to
make the device values in the CPU device ID tables easier to read.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Idab77453712b14983b1d02ca365f7924239fc2bf
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72856
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-08 15:12:13 +00:00
Felix Held 9700fe2f10 soc/amd/stoneyridge/cpu: use CPUID_ALL_STEPPINGS_MASK
Use CPUID_ALL_STEPPINGS_MASK as CPUID match mask to support all family
15h model 60h and 70h steppings.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Id05f849d59c04efa9f38dd66892f3cb99d94e3ff
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72855
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-08 15:11:46 +00:00
Felix Held a5aee116c3 cpu/intel/model_206ax/model_206ax_init: use CPUID_ALL_STEPPINGS_MASK
Use CPUID_ALL_STEPPINGS_MASK to only need one CPU device ID table entry
per family & model combination and not one per stepping.

TEST=Thinkpad x230 with Ivy Bridge stepping 9 CPU still boots with this
patch applied.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I46020d5b1b1fba8449c3823fac1369e5670d91c0
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72854
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2023-02-08 15:11:13 +00:00
Felix Held 5700149dbf soc/amd/phoenix/include/cpu: add Phoenix CPUID
There are multiple Phoenix steppings, but that is now covered by using
CPUID_ALL_STEPPINGS_MASK.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Id4eb3502dec5ebdfdbba263b15b34621952d0554
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72853
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-08 15:10:47 +00:00
Felix Held 286c00347d soc/amd/glinda/cpu: use CPUID_ALL_STEPPINGS_MASK
Use CPUID_ALL_STEPPINGS_MASK as CPUID match mask to support all Glinda
steppings once GLINDA_A0_CPUID is updated.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Ic9b8cbb2dc925a8258db6a4eb0d1b00b2745637f
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72852
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-08 15:10:14 +00:00
Felix Held a5d7f1603a soc/amd/phoenix/cpu: use CPUID_ALL_STEPPINGS_MASK
Use CPUID_ALL_STEPPINGS_MASK as CPUID match mask to support all
Phoenix 2 steppings that might be available in the future. Right now it
shouldn't change any behavior.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: If9878b4687360250cac4cfe1409d5dbad7147cf3
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72851
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-08 15:09:42 +00:00
Felix Held 309043e336 soc/amd/mendocino/cpu: use CPUID_ALL_STEPPINGS_MASK
Use CPUID_ALL_STEPPINGS_MASK as CPUID match mask to support all
Mendocino steppings that might be available in the future. Right now it
shouldn't change any behavior.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I77ea8c6162667e0a318176e62078b1f57726c10c
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72850
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-08 15:09:25 +00:00
Felix Held 4e812bd297 soc/amd/cezanne: use CPUID_ALL_STEPPINGS_MASK to support all steppings
Use CPUID_ALL_STEPPINGS_MASK as CPUID match mask to support all Cezanne
steppings. This adds support for Cezanne stepping A1 and possible future
steppings.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Idb020052685d9369109f391797fdd8f8790a91d1
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72849
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-08 15:09:14 +00:00
Felix Held cf9b06971f soc/amd/picasso/cpu: use CPUID_ALL_STEPPINGS_MASK
Use CPUID_ALL_STEPPINGS_MASK to only need one CPU device ID table entry
per family & model combination and not one per stepping.

TEST=Mandolin with a Picasso APU with PICASSO_B1_CPUID (0x00810f81)
still finished mpinit and boots successfully even though now only
PICASSO_B0_CPUID (0x00810f80) with CPUID_ALL_STEPPINGS_MASK specified as
device match mask. When commenting out the line with PICASSO_B0_CPUID
as a negative test, mpinit fails as expected.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I00ba43834ad86ecffa09d60599b17d122acd0b99
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72848
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2023-02-08 15:08:48 +00:00
Felix Held 6a6ac1e0b9 arch/x86/cpu: introduce and use device_match_mask
Instead of always doing exact matches between the CPUID read in
identify_cpu and the device entries of the CPU device ID table,
offer the possibility to use a bit mask in the CPUID matching. This
allows covering all steppings of a CPU family/model with one entry and
avoids that case of a missing new stepping causing the CPUs not being
properly initialized.

Some of the CPU device ID tables can now be deduplicated using the
CPUID_ALL_STEPPINGS_MASK define, but that's outside of the scope of this
patch.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I0540b514ca42591c0d3468307a82b5612585f614
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72847
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2023-02-08 15:07:45 +00:00
Felix Held 2fe5d3e5a5 arch/x86/include/cpu: retype device field in cpu_device_id
Use a more specific type in preparation for using bit masks on this
field in the next patch. Since uint32_t is a typedef of unsigned int,
this won't change behavior.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Ic54f73dcd3496a5ad85291b9b9586bc740b734d5
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72846
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2023-02-08 15:07:32 +00:00
Sean Rhodes 6b5b7e0654 soc/intel/{tgl,adl}/acpi: Unify the way D3Cold is enabled
Both Alder Lake and Tiger Lake have Kconfig options for S3, which
disables support for D3Cold. Unify these so that they are easier
to compare.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: I6eaba99e5483053a91ca20df2b7788edac5d65b2
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72798
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-08 15:03:22 +00:00
Ritul Guru 699f0d48ad mb/amd/mayan: update EC FW offset in spirom
update EC FW offset location in spirom to 0x81000
For mayan board EC FW is located at offset 0x81000 location,
0th location contains pointer to this EC FW location.

Change-Id: I63c797e12ed131e8411c11379f4db9bcc29b49a2
Signed-off-by: Ritul Guru <ritul.bits@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/70540
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
2023-02-08 13:46:40 +00:00
Felix Held 965a45f486 soc/amd/common/data_fabric: print decoded control register contents
Since all SoCs define the df_mmio_control union for the bits used in the
code, data_fabric_print_mmio_conf can take advantage of that and also
print a decoded version of those bits.

Output on Mandolin before the patch:

=== Data Fabric MMIO configuration registers ===
idx  control             base            limit
  0       93         fc000000         febfffff
  1       93      10000000000     ffffffffffff
  2       93         d0000000         f7ffffff
  3     1093         fed00000         fedfffff
  4       90                0             ffff
  5       90                0             ffff
  6       90                0             ffff
  7       90                0             ffff

Output on Mandolin with the patch:

=== Data Fabric MMIO configuration registers ===
idx             base            limit  control R W NP F-ID
  0         fc000000         febfffff       93 x x       9
  1      10000000000     ffffffffffff       93 x x       9
  2         d0000000         f7ffffff       93 x x       9
  3         fed00000         fedfffff     1093 x x  x    9
  4                0             ffff       90           9
  5                0             ffff       90           9
  6                0             ffff       90           9
  7                0             ffff       90           9

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I06e1d3a3e9abd664f59f2bb852394e7f723f2b30
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72880
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
2023-02-08 13:41:25 +00:00
Felix Held 5bdedae900 soc/amd/mendocino/data_fabric: add Rembrandt DF_MMIO_REG_SET_SIZE
In contrast to Mendocino and all other AMD SoCs in the coreboot tree,
Rembrandt, on which Mendocino is based on, has a DF_MMIO_REG_SET_SIZE of
3 instead of 4, so the next data fabric MMIO register is 3 DWORDs after
the last one instead of the 4 DWORDs on the other SoCs. This was checked
against PPR #56558 Rev 3.04.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I454ad5d182f0040db93c9b3a83941333392c6061
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72879
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
2023-02-08 13:10:31 +00:00
Felix Held 4e4dde484a soc/amd/*/data_fabric: introduce and use DF_MMIO_REG_SET_SIZE
To be able to handle a special case, add a per-SoC define for
DF_MMIO_REG_SET_SIZE instead of having this hard-coded as 4 in the
DF_MMIO_* macros. To avoid some duplication, also introduce the
DF_MMIO_REG_OFFSET macro.

TEST=Output from data_fabric_print_mmio_conf doesn't change on Mandolin.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I67420a2973c8ef9a7f0ce19ddc0013de69731689
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72878
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
2023-02-08 13:09:45 +00:00
Felix Held d4be5aacf4 soc/amd/common/data_fabric: replace NB with DF prefix for DF registers
Since the MMIO decode range registers in the data fabric are part of the
data fabric and not of the northbridge, replace the NB prefix with a DF
prefix to make this a bit clearer.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Ife5e4581752825e9224b50252955d485a067af74
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72877
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
2023-02-08 13:09:14 +00:00
Felix Held b307ed66b0 soc/amd/*/data_fabric: rename define for MMIO decode register set count
This should make it a bit clearer that those registers are in the data
fabric configuration registers. Also move those defines right after the
register definition those are related to.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Ic107bd217f4af0a9ddfbe41aafd3c882aa968e22
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72876
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
2023-02-08 13:09:06 +00:00
Zheng Bao 7c7294fa27 amdfwtool: Report the address of EFS header and body
The address mode is an internal mode which AMD FWs use. Regular
developers don't have to know that. Just report the relative address
every time. For the cases head and body are split, the address of body
is also reported.

Change-Id: I77d9aac0b3d996363341c1d2dae049ec344b39aa
Signed-off-by: Zheng Bao <fishbaozi@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/71651
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
2023-02-08 12:26:37 +00:00
Felix Held 02dcf97dd4 soc/amd/phoenix/include/cpu: rename CPUID define to match CPU model
CPUID 0x00a70f80 is Phoenix 2 and not Phoenix, so update the define name
to match.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Ie7500130d5470fdd824980b81746f3a0f6d277d4
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72843
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: ritul guru <ritul.bits@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
2023-02-08 11:48:31 +00:00
Felix Singer 1dc1d98467 docs/contrib/gsoc: Move org admins to dedicated section
Add a dedicated section for the organization admins and explain their
role. Also, add a reference to a GSoC page mentioning various tips for
organization admins.

Change-Id: I6c84a80dabf516b2042af018f091204f0f853361
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72514
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
2023-02-08 06:35:56 +00:00
Harsha B R 168798a53e mb/intel/mtlrvp: Add ACPI configuration for USB2/3 ports
This patch adds ACPI configuration for USB2/3 ports for mtlrvp as per
schematics. This helps in generating corresponding ACPI code at runtime
that includes port information.

BUG=b:224325352
BRANCH=None
TEST=Able to build and boot MTLRVP. Connect USB device and check if
corresponding enumeration of USB device (14.0) is observed on executing
lspci.
00:14.0 USB controller: Intel Corporation Device 7e7d (rev 01)
00:14.1 USB controller: Intel Corporation Device 7e7e (rev 01)

Signed-off-by: Harsha B R <harsha.b.r@intel.com>
Change-Id: Ie150247661322e3944be15dc70f66033266d8aac
Signed-off-by: Jamie Ryu <jamie.m.ryu@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72787
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Reviewed-by: Sridhar Siricilla <sridhar.siricilla@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-08 05:38:27 +00:00
Harsha B R 2904aeabad mb/intel/mtlrvp: Describe mainboard configuration for BB Retimer
This patch describes BB retimer for tcss_dma0 and tcss_dma1 with respect
to GPP_B21 as per schematics.

+--------------+------------+
| tbt_pcie_rp0 |  tcss_dma0 |
+--------------+------------+
| tbt_pcie_rp1 |  tcss_dma0 |
+--------------+------------+
| tbt_pcie_rp2 |  tcss_dma1 |
+--------------+------------+
| tbt_pcie_rp3 |  tcss_dma1 |
+--------------+------------+

BUG=b:224325352
BRANCH=None
TEST=Able to build and boot MTLRVP to ChromeOS. Verify the enumeration
of tbt_pcie_rp as part of lspci.
00:07.0 PCI bridge: Intel Corporation Device 7ec4
00:07.1 PCI bridge: Intel Corporation Device 7ec5
00:07.2 PCI bridge: Intel Corporation Device 7ec6
00:07.3 PCI bridge: Intel Corporation Device 7ec7

Signed-off-by: Harsha B R <harsha.b.r@intel.com>
Change-Id: Ie1a0026b064aa4f7fcd27e75c0b0d052ec620dcc
Signed-off-by: Jamie Ryu <jamie.m.ryu@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72786
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Reviewed-by: Sridhar Siricilla <sridhar.siricilla@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-08 05:37:48 +00:00
Harsha B R 5897382269 mb/intel/mtlrvp: Describe TCSS USB ports
This patch describes the TCSS USB ports for mtlrvp as per schematics.
This patch describes TCSS ports for UPC_TYPE_C_USB2_SS_SWITCH as below,
tcss_usb3_port1: USB3 Type-C Port C0
tcss_usb3_port2: USB3 Type-C Port C1
tcss_usb3_port3: USB3 Type-C Port C2
tcss_usb3_port4: USB3 Type-C Port C3

BUG=b:224325352
BRANCH=None
TEST=Able to build and boot MTLRVP to ChromeOS. Verify the enumeration
of xhci (0d.0) as part of lspci. Also verify the enumeration of Type-C
ports as part of cbmem -c.

Signed-off-by: Harsha B R <harsha.b.r@intel.com>
Change-Id: I0054ac4e3d1d9b97cfea615831ec8f3d3e00c9e0
Signed-off-by: Jamie Ryu <jamie.m.ryu@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72785
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Reviewed-by: Sridhar Siricilla <sridhar.siricilla@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-08 04:56:47 +00:00
Harsha B R 4aa7d2d5ac mb/intel/mtlrvp: Enable WWAN ACPI
This patch enables FM350GL 5G WWAN support for mtlrvp.

BUG=b:224325352
BRANCH=None
TEST=Build and boot mtlrvp to ChromeOS. Ensure that WWAN module 00:1c.6
is enumerated as part of lspci and cbmem -c in AP console. Also verify
generation of PXSX Device as part of SSDT. Able to connect WiFi and
access internet.

cbmem -c:
\_SB.PCI0.RP07: Enable RTD3 for PCI: 00:1c.6 (Intel PCIe Runtime D3)
\_SB.PCI0.RP07: Enable WWAN for PCI: 00:1c.6 (Fibocom FM-350-GL)

SSDT:
Scope (\_SB.PCI0.RP07)
{
 Device (PXSX)

Signed-off-by: Harsha B R <harsha.b.r@intel.com>
Change-Id: I870cc0782fb989f1bdbe369a4a12630a62729d8e
Signed-off-by: Jamie Ryu <jamie.m.ryu@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72779
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Reviewed-by: Krishna P Bhat D <krishna.p.bhat.d@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sridhar Siricilla <sridhar.siricilla@intel.com>
2023-02-08 04:56:29 +00:00
Elyes Haouas b2d5e466d5 acpi/acpigen.h: Fix EVENT_OP value
Fix EVENT_OP value according to ACPI specs:
https://uefi.org/specs/ACPI/6.5/20_AML_Specification.html?highlight=aml%20byte%20stream%20byte%20values#aml-byte-stream-byte-values

Change-Id: I8c531e95f4fc741926bc883d869816f534ff3b7f
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72805
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-by: Felix Singer <felixsinger@posteo.net>
2023-02-08 02:51:47 +00:00
Yuchen He 5e7dc21c91 arch/arm64/armv8/mmu.c: Add a space before the ternary operator
Coding style requires a space before the question mark in ternary
operators. Fix that.

Found by the linter.

Signed-off-by: Yuchen He <yuchenhe126@gmail.com>
Change-Id: I894d6efd5673e9ad5f166ae59967a8d4bb42fb06
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72484
Reviewed-by: Felix Singer <felixsinger@posteo.net>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-08 02:03:11 +00:00
Yu-Ping Wu 5aed1a0d72 mb/samsung: Enable VBOOT_VBNV_FLASH
To deprecate VBOOT_VBNV_CMOS [1], replace VBOOT_VBNV_CMOS with
VBOOT_VBNV_FLASH for samsung boards lumpy and stumpy. 0x8000 unused
flash space is allocated for RW_NVRAM.

Previously BOOT_DEVICE_SPI_FLASH_NO_EARLY_WRITES was selected for
CPU_INTEL_HASWELL, CPU_INTEL_MODEL_{2065X,206AX} and others (see [2]).
However, there seems to be no particular reason on those platforms.
We've dropped the config for haswell. Now drop it for
CPU_INTEL_MODEL_{2065X,206AX}, so that VBOOT_VBNV_FLASH can be enabled.

[1] https://web.archive.org/web/20230115020833/https://issuetracker.google.com/issues/235293589?pli=1
[2] commit 6c2568f4f5
    ("drivers/spi: Add BOOT_DEVICE_SPI_FLASH_NO_EARLY_WRITES config")

BUG=b:235293589
TEST=./util/abuild/abuild -a -t SAMSUNG_LUMPY -x

Change-Id: I833edd4f7a328b21e81c971ba8a9aec0aad7d3d3
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/70296
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2023-02-08 00:54:16 +00:00
Martin Roth 1b74898395 util/abuild: Add flags to allow abuild to skip boards
This change adds 2 command line parameters, --skip_set and --skip_unset
that allows abuild to skip boards with particular Kconfig values either
set or not set.

Note that it only works on BOOL type variables.

This can be set on the abuild command line, or the JENKINS_ABUILD_OPT=
variable on the make command line.

Signed-off-by: Martin Roth <gaumless@gmail.com>
Change-Id: I43336484cf25f83065ec7facf45c123d831024b5
Reviewed-on: https://review.coreboot.org/c/coreboot/+/71730
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Felix Singer <felixsinger@posteo.net>
2023-02-07 23:33:39 +00:00
Felix Held 12ec7901b7 soc/amd/stoneyridge/acpi: use acpigen_write_processor_device
Since things are done a bit differently on Stoneyridge, it's probably
safer to run a test instead of assuming that the test on Picasso was
sufficient to be reasonably sure that this will also work as expected on
Stoneyridge.

TEST=No change of ACPI-related messages in dmesg with this patch.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I432752fae8be08d3cbd7d30215b350c4528c7206
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72495
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2023-02-07 17:21:43 +00:00
Morris Hsu fc84a555da mb/google/brya: Create constitution variant
Create the constitution variant of the brask reference board by
copying the template files to a new directory named for the variant.

(Auto-Generated by create_coreboot_variant.sh version 4.5.0).

BUG=b:267539938
TEST=util/abuild/abuild -p none -t google/brya -x -a
make sure the build includes GOOGLE_CONSTITUTION

Change-Id: Idb6089561d3aa5aac4448f9d46347c731f027e9c
Signed-off-by: Morris Hsu <morris-hsu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72730
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-07 13:48:18 +00:00
Patrick Rudolph 55d0af4618 bsd/cb_err: Add error code for UEFI variable store
Add a new set of errors that will be used by the introduced EFI
non-volatile variable store in flash.

Change-Id: I6baea9fb138d1a2755d22a3d587105793adb9c90
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/61960
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
2023-02-07 12:57:36 +00:00
Elyes Haouas 9c8249195d acpi/acpigen.c: Add a comment to deprecate acpigen_write_processor()
ACPI Revision 6.0 deprecates Processor keyword, so use
acpigen_write_processor_device() instead.

Change-Id: I31626f4e323dd9053a63c0f5e89d1685103e4bd4
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72487
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2023-02-07 11:47:50 +00:00
Sean Rhodes 0095fce186 soc/intel/alderlake: Remove unused S0IX variable
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: I85fc5dabf10c6df7f11fd1defe8a39afc9f95325
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72797
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-02-07 11:09:12 +00:00
Felix Held 77128a8dcd soc/amd/common/data_fabric_helper: normalize addresses in debug print
Instead of just printing the register contents, normalize the contents
of the base and limit registers to actual MMIO addresses and then print
those. This will hopefully avoid some confusion caused by the shifted
addresses.

Output on Mandolin before the patch:

=== Data Fabric MMIO configuration registers ===
Addresses are shifted to the right by 16 bits.
idx  control     base    limit
  0       93     fc00     febf
  1       93  1000000 ffffffff
  2       93     d000     f7ff
  3     1093     fed0     fedf
  4       90        0        0
  5       90        0        0
  6       90        0        0
  7       90        0        0

Output on Mandolin after the patch:

=== Data Fabric MMIO configuration registers ===
idx  control             base            limit
  0       93         fc000000         febfffff
  1       93      10000000000     ffffffffffff
  2       93         d0000000         f7ffffff
  3     1093         fed00000         fedfffff
  4       90                0             ffff
  5       90                0             ffff
  6       90                0             ffff
  7       90                0             ffff

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I62eeb88ddac6a7a421fccc8e433523459117976a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72739
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
2023-02-07 11:01:33 +00:00
Martin Roth 0d34a50a36 src: Move POST_BOOTBLOCK_CAR to common postcodes and use it
This moves the definition for POST_BOOTBLOCK_CAR from the intel-specific
postcodes into the common postcode list, and uses it for the
cache-as-RAM init as needed.

Because POST_BOOTBLOCK_CAR was set to 0x20 in some spots and 0x21 in
most of the others, the values were consolidated into 0x21.  This will
change the value on some platforms.

Any conflicts should get sorted out later in the conversion process.

Signed-off-by: Martin Roth <gaumless@gmail.com>
Change-Id: I8527334e679a23006b77a5645f919aea76dd4926
Reviewed-on: https://review.coreboot.org/c/coreboot/+/71596
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2023-02-07 10:53:34 +00:00
Harsha B R a891f71ad5 mb/intel/mtlrvp: Enable GSPI interface
This patch enables GSPI [1] interface for mtlrvp based on mtlrvp
schematics.

BUG=b:224325352
BRANCH=None
TEST=Able to observe corresponding UPD configuration with FSP dump and
able to boot mtlrvp (LP5/DDR5) to ChromeOS. (Base patch for CB:71223)
SPI[0].Mode                 = 0
SPI[0].DefaultCsOutput      = 0
SPI[0].CsMode               = 0
SPI[0].CsState              = 0
SPI[1].Mode                 = 1
SPI[1].DefaultCsOutput      = 0
SPI[1].CsMode               = 0
SPI[1].CsState              = 0

Signed-off-by: Harsha B R <harsha.b.r@intel.com>
Change-Id: I3d4c4f19dd80fefa80c365b5ecac0a234f5af860
Signed-off-by: Jamie Ryu <jamie.m.ryu@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72706
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Reviewed-by: Sridhar Siricilla <sridhar.siricilla@intel.com>
2023-02-07 07:17:14 +00:00