diff options
author | Keith Hui <buurin@gmail.com> | 2024-05-25 17:33:38 -0400 |
---|---|---|
committer | Martin L Roth <gaumless@gmail.com> | 2024-06-07 22:33:10 +0000 |
commit | 94625d2aae76f4b72bc59c0da36793db2dc6df5c (patch) | |
tree | 02e4612d9ca12cfd97fc9d6de268e0d17f7c1405 /src/mainboard/lenovo/m900_tiny | |
parent | 83cd6f9f89eb473522a9a6536601acb64dd2863c (diff) |
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>
Diffstat (limited to 'src/mainboard/lenovo/m900_tiny')
0 files changed, 0 insertions, 0 deletions