coreboot: lemp12: Enable TCSS Type-C port, PMC mux and retimer - #676
Closed
mattwollf wants to merge 1 commit into
Closed
coreboot: lemp12: Enable TCSS Type-C port, PMC mux and retimer#676mattwollf wants to merge 1 commit into
mattwollf wants to merge 1 commit into
Conversation
lemp12's USB-C connector never operates above USB 2.0 and DisplayPort alt-mode never engages, because no rpl variant enables tcss_usb3_port1 and so FSP-S is passed UsbTcPortEn = 0. Fixes system76#675. Not tested on hardware: no external programmer for this board's WSON-8 SPI part, so no patched ROM has been flashed. Signed-off-by: mw <mw@mattsp.dev>
Member
|
Patches for submodules need to go to our forks, not changing the forks itself. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #675 — lemp12's USB-C port (
J_TYPEC1) never exceeds USB 2.0 and DisplayPortalt-mode never engages.
Cause.
fill_fsps_tcss_params()insoc/intel/alderlake/fsp_params.cderives theFSP-S UPD
UsbTcPortEnfrom whether the devicetree devicetcss_usb3_port1is enabled.soc/intel/alderlake/chipset.cbdefaults itoff, therplbaseboard declares no TCSSsection, and no
rplvariant enables it — so the bit stays clear and FSP-S never bringsthe Type-C port up. The connector's USB2 pair routes to the PCH (
usb2_ports[2] = USB2_PORT_TYPE_C) and keeps working, which is why devices enumerate at 480 Mbps whilethe SuperSpeed lanes stay dark.
All 7/7
adlvariants enabletcss_usb3_port1; 0/12rplvariants do.tgl-uandmtlalso enable it, so this looks like therpldirectory having been created withoutcarrying the Type-C stack over rather than a per-board decision.
This PR is a
corebootsubmodule bump. The change is entirely inside coreboot, sothere is nothing else for firmware-open to carry. The gitlink points at
mattwollf/coreboot@3f55b23,branch
lemp12-tcss-s76,based on
28fb5085— the exact commit this repo currently pins. It will not resolveuntil the two commits are on
system76/coreboot; tell me where you want them (a PRthere, or coreboot Gerrit) and I'll move them. The full diff is inline below so it is
reviewable without chasing the fork.
Two commits, 2 files, +80/-1:
mb/system76/rpl: selectDRIVERS_INTEL_PMCandDRIVERS_INTEL_USB4_RETIMER.adlselects both,
rplneither, and the chip entries below don't link without them. Nofunctional effect on variants that don't use the drivers.
mb/system76/lemp12: enabletcss_root_hub/tcss_usb3_port1undertcss_xhci, adddrivers/intel/usb4/retimerundertcss_dma0, adddrivers/intel/pmc_mux+connunder
pmc, and add the per-portdrivers/usb/acpidescriptors underxhci. Mirrorslemp11.
GPP_E4for the retimer force-power pad is the board's ownTBT_FORCE_PWR, cross-checkedagainst the Clevo L140AU schematic (
6-71-L14A0-D02A): PCH ball FC22 →GPPE4_TBT_FORCE_PWR→ R411 (0 Ω, populated) →TC_RETIMER_FORCE_PWR→ JHL8040RFORCE_PWRball A9.On the
drivers/usb/acpihunk. CB:94134 adds those per-port descriptors to all twelverplvariants and is a better version of that part, but it isn't on thesystem76branchyet and the
pmc_muxconn node referencesusb2_port3— so it's included here. Drop thathunk if 94134 is picked up first.
What is verified
28fb5085, release2025-07-24_c242738).static.c:_dev_tcss_usb3_port1.enabledis 0 before and 1 after; the treegains
drivers_intel_pmc_mux_ops,drivers_intel_pmc_mux_conn_opsanddrivers_intel_usb4_retimer_ops;conn.usb2_portresolves to&_dev_usb2_port3andconn.usb3_port/retimer.dfp[0].typec_portto&_dev_tcss_usb3_port1.payload and bootblock bit-for-bit unchanged;
fallback/ramstage+2189 B,romstage+768 B.
INTC105Cappears only in the patched ramstage, and decoding the device arrayout of the extracted ramstage shows
tcss_usb3_port1.enabledgoing 0 → 1 — so the bitreaches the image that would be flashed.
What is not verified — I have not flashed this. lemp12's SPI is a leadless WSON-8
MX25L25673G(U41), I have no external programmer, and the flash map has a singleCOREBOOTregion with no recovery slot, so a bad image is unrecoverable on my onlymachine. The runtime behaviour is genuinely untested. If someone there can flash it on a
bench unit it's a couple of minutes' work, and I'd rather that happen before anything here
claims to be tested.
Scope. lemp12 only, deliberately. Reading the other overridetrees, darp9, galp7 and
oryp11 look affected identically — in each case the Type-C connector with no PCH
usb3_ports[]entry is the one users report broken (#472 for oryp11, #497 for darp9,where the reporter notes the adjacent Type-C works and a warranty mainboard swap changed
nothing). I don't own those boards, so I've left them alone; the same blocks should apply
with the
connalias and retimer pad adjusted per board. Happy to send them as afollow-up.
No
models/lemp12/coreboot.configchange is needed; the two new Kconfig symbols areselected by therplmainboard.Full coreboot diff (2 files, +80/-1)