Tim Chen would like Tim Chen to review this change.

View Change

mb/google/puff: update USB3 gen2 parameters

Based on USB3 gen2 SI report to fine tune the parameters for USB3 gen2.

BRANCH=none
BUG=b:150515720
TEST=build and check the USB3 gen2 register on DUT is correct.

Change-Id: I6ec109871d682a1ae2fa4c22fdd6b87ad8a39e9e
Signed-off-by: Tim Chen <tim-chen@quanta.corp-partner.google.com>
---
M src/mainboard/google/hatch/variants/duffy/overridetree.cb
M src/mainboard/google/hatch/variants/faffy/overridetree.cb
M src/mainboard/google/hatch/variants/kaisa/overridetree.cb
3 files changed, 207 insertions(+), 15 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/82/43482/1
diff --git a/src/mainboard/google/hatch/variants/duffy/overridetree.cb b/src/mainboard/google/hatch/variants/duffy/overridetree.cb
index 244e678..2f2b643 100644
--- a/src/mainboard/google/hatch/variants/duffy/overridetree.cb
+++ b/src/mainboard/google/hatch/variants/duffy/overridetree.cb
@@ -74,12 +74,76 @@
.pre_emp_bit = USB2_HALF_BIT_PRE_EMP,
}" # BT

- register "usb3_ports[0]" = "USB3_PORT_DEFAULT(OC2)" # Type-A Port 2
- register "usb3_ports[1]" = "USB3_PORT_DEFAULT(OC3)" # Type-A Port 3
- register "usb3_ports[2]" = "USB3_PORT_DEFAULT(OC1)" # Type-A Port 1
+ register "usb3_ports[0]" = "{
+ .enable = 1,
+ .ocpin = OC2,
+ .tx_de_emp = 0x00,
+ .tx_downscale_amp = 0x00,
+ .gen2_tx_rate0_uniq_tran_enable = 0,
+ .gen2_tx_rate0_uniq_tran = 0x00,
+ .gen2_tx_rate1_uniq_tran_enable = 0,
+ .gen2_tx_rate1_uniq_tran = 0x00,
+ .gen2_tx_rate2_uniq_tran_enable = 1,
+ .gen2_tx_rate2_uniq_tran = 0x4c,
+ .gen2_tx_rate3_uniq_tran_enable = 0,
+ .gen2_tx_rate3_uniq_tran = 0x00,
+ .gen2_rx_tuning_enable = 0x0f,
+ .gen2_rx_tuning_params = 0x45,
+ .gen2_rx_filter_sel = 0x44,
+ }" # Type-A Port 2
+ register "usb3_ports[1]" = "USB3_PORT_GEN2_DEFAULT(OC3)" # Type-A Port 3
+ register "usb3_ports[2]" = "{
+ .enable = 1,
+ .ocpin = OC1,
+ .tx_de_emp = 0x00,
+ .tx_downscale_amp = 0x00,
+ .gen2_tx_rate0_uniq_tran_enable = 0,
+ .gen2_tx_rate0_uniq_tran = 0x00,
+ .gen2_tx_rate1_uniq_tran_enable = 0,
+ .gen2_tx_rate1_uniq_tran = 0x00,
+ .gen2_tx_rate2_uniq_tran_enable = 1,
+ .gen2_tx_rate2_uniq_tran = 0x4c,
+ .gen2_tx_rate3_uniq_tran_enable = 0,
+ .gen2_tx_rate3_uniq_tran = 0x00,
+ .gen2_rx_tuning_enable = 0x0f,
+ .gen2_rx_tuning_params = 0x3d,
+ .gen2_rx_filter_sel = 0x44,
+ }" # Type-A Port 1
register "usb3_ports[3]" = "USB3_PORT_DEFAULT(OC_SKIP)" # Type-C
- register "usb3_ports[4]" = "USB3_PORT_DEFAULT(OC0)" # Type-A Port 0
- register "usb3_ports[5]" = "USB3_PORT_DEFAULT(OC_SKIP)" # Type-A Port 4
+ register "usb3_ports[4]" = "{
+ .enable = 1,
+ .ocpin = OC0,
+ .tx_de_emp = 0x00,
+ .tx_downscale_amp = 0x00,
+ .gen2_tx_rate0_uniq_tran_enable = 0,
+ .gen2_tx_rate0_uniq_tran = 0x00,
+ .gen2_tx_rate1_uniq_tran_enable = 0,
+ .gen2_tx_rate1_uniq_tran = 0x00,
+ .gen2_tx_rate2_uniq_tran_enable = 1,
+ .gen2_tx_rate2_uniq_tran = 0x4c,
+ .gen2_tx_rate3_uniq_tran_enable = 0,
+ .gen2_tx_rate3_uniq_tran = 0x00,
+ .gen2_rx_tuning_enable = 0x0f,
+ .gen2_rx_tuning_params = 0x45,
+ .gen2_rx_filter_sel = 0x44,
+ }" # Type-A Port 0
+ register "usb3_ports[5]" = "{
+ .enable = 1,
+ .ocpin = OC_SKIP,
+ .tx_de_emp = 0x00,
+ .tx_downscale_amp = 0x00,
+ .gen2_tx_rate0_uniq_tran_enable = 0,
+ .gen2_tx_rate0_uniq_tran = 0x00,
+ .gen2_tx_rate1_uniq_tran_enable = 0,
+ .gen2_tx_rate1_uniq_tran = 0x00,
+ .gen2_tx_rate2_uniq_tran_enable = 1,
+ .gen2_tx_rate2_uniq_tran = 0x4c,
+ .gen2_tx_rate3_uniq_tran_enable = 0,
+ .gen2_tx_rate3_uniq_tran = 0x00,
+ .gen2_rx_tuning_enable = 0x0f,
+ .gen2_rx_tuning_params = 0x45,
+ .gen2_rx_filter_sel = 0x44,
+ }" # Type-A Port 4

# Bitmap for Wake Enable on USB attach/detach
register "usb2_wake_enable_bitmap" = "USB_PORT_WAKE_ENABLE(1) | \
diff --git a/src/mainboard/google/hatch/variants/faffy/overridetree.cb b/src/mainboard/google/hatch/variants/faffy/overridetree.cb
index fb4030b..8aff8d1 100644
--- a/src/mainboard/google/hatch/variants/faffy/overridetree.cb
+++ b/src/mainboard/google/hatch/variants/faffy/overridetree.cb
@@ -81,12 +81,76 @@
.pre_emp_bit = USB2_HALF_BIT_PRE_EMP,
}" # BT

- register "usb3_ports[0]" = "USB3_PORT_DEFAULT(OC2)" # Type-A Port 2
- register "usb3_ports[1]" = "USB3_PORT_DEFAULT(OC3)" # Type-A Port 3
- register "usb3_ports[2]" = "USB3_PORT_DEFAULT(OC1)" # Type-A Port 1
+ register "usb3_ports[0]" = "{
+ .enable = 1,
+ .ocpin = OC2,
+ .tx_de_emp = 0x00,
+ .tx_downscale_amp = 0x00,
+ .gen2_tx_rate0_uniq_tran_enable = 0,
+ .gen2_tx_rate0_uniq_tran = 0x00,
+ .gen2_tx_rate1_uniq_tran_enable = 0,
+ .gen2_tx_rate1_uniq_tran = 0x00,
+ .gen2_tx_rate2_uniq_tran_enable = 1,
+ .gen2_tx_rate2_uniq_tran = 0x4c,
+ .gen2_tx_rate3_uniq_tran_enable = 0,
+ .gen2_tx_rate3_uniq_tran = 0x00,
+ .gen2_rx_tuning_enable = 0x0f,
+ .gen2_rx_tuning_params = 0x45,
+ .gen2_rx_filter_sel = 0x44,
+ }" # Type-A Port 2
+ register "usb3_ports[1]" = "USB3_PORT_GEN2_DEFAULT(OC3)" # Type-A Port 3
+ register "usb3_ports[2]" = "{
+ .enable = 1,
+ .ocpin = OC1,
+ .tx_de_emp = 0x00,
+ .tx_downscale_amp = 0x00,
+ .gen2_tx_rate0_uniq_tran_enable = 0,
+ .gen2_tx_rate0_uniq_tran = 0x00,
+ .gen2_tx_rate1_uniq_tran_enable = 0,
+ .gen2_tx_rate1_uniq_tran = 0x00,
+ .gen2_tx_rate2_uniq_tran_enable = 1,
+ .gen2_tx_rate2_uniq_tran = 0x4c,
+ .gen2_tx_rate3_uniq_tran_enable = 0,
+ .gen2_tx_rate3_uniq_tran = 0x00,
+ .gen2_rx_tuning_enable = 0x0f,
+ .gen2_rx_tuning_params = 0x3d,
+ .gen2_rx_filter_sel = 0x44,
+ }" # Type-A Port 1
register "usb3_ports[3]" = "USB3_PORT_DEFAULT(OC_SKIP)" # Type-C
- register "usb3_ports[4]" = "USB3_PORT_DEFAULT(OC0)" # Type-A Port 0
- register "usb3_ports[5]" = "USB3_PORT_DEFAULT(OC_SKIP)" # Type-A Port 4
+ register "usb3_ports[4]" = "{
+ .enable = 1,
+ .ocpin = OC0,
+ .tx_de_emp = 0x00,
+ .tx_downscale_amp = 0x00,
+ .gen2_tx_rate0_uniq_tran_enable = 0,
+ .gen2_tx_rate0_uniq_tran = 0x00,
+ .gen2_tx_rate1_uniq_tran_enable = 0,
+ .gen2_tx_rate1_uniq_tran = 0x00,
+ .gen2_tx_rate2_uniq_tran_enable = 1,
+ .gen2_tx_rate2_uniq_tran = 0x4c,
+ .gen2_tx_rate3_uniq_tran_enable = 0,
+ .gen2_tx_rate3_uniq_tran = 0x00,
+ .gen2_rx_tuning_enable = 0x0f,
+ .gen2_rx_tuning_params = 0x45,
+ .gen2_rx_filter_sel = 0x44,
+ }" # Type-A Port 0
+ register "usb3_ports[5]" = "{
+ .enable = 1,
+ .ocpin = OC_SKIP,
+ .tx_de_emp = 0x00,
+ .tx_downscale_amp = 0x00,
+ .gen2_tx_rate0_uniq_tran_enable = 0,
+ .gen2_tx_rate0_uniq_tran = 0x00,
+ .gen2_tx_rate1_uniq_tran_enable = 0,
+ .gen2_tx_rate1_uniq_tran = 0x00,
+ .gen2_tx_rate2_uniq_tran_enable = 1,
+ .gen2_tx_rate2_uniq_tran = 0x4c,
+ .gen2_tx_rate3_uniq_tran_enable = 0,
+ .gen2_tx_rate3_uniq_tran = 0x00,
+ .gen2_rx_tuning_enable = 0x0f,
+ .gen2_rx_tuning_params = 0x45,
+ .gen2_rx_filter_sel = 0x44,
+ }" # Type-A Port 4

# Bitmap for Wake Enable on USB attach/detach
register "usb2_wake_enable_bitmap" = "USB_PORT_WAKE_ENABLE(1) | \
diff --git a/src/mainboard/google/hatch/variants/kaisa/overridetree.cb b/src/mainboard/google/hatch/variants/kaisa/overridetree.cb
index eb177f2..01691ff 100644
--- a/src/mainboard/google/hatch/variants/kaisa/overridetree.cb
+++ b/src/mainboard/google/hatch/variants/kaisa/overridetree.cb
@@ -74,12 +74,76 @@
.pre_emp_bit = USB2_HALF_BIT_PRE_EMP,
}" # BT

- register "usb3_ports[0]" = "USB3_PORT_DEFAULT(OC2)" # Type-A Port 2
- register "usb3_ports[1]" = "USB3_PORT_DEFAULT(OC3)" # Type-A Port 3
- register "usb3_ports[2]" = "USB3_PORT_DEFAULT(OC1)" # Type-A Port 1
+ register "usb3_ports[0]" = "{
+ .enable = 1,
+ .ocpin = OC2,
+ .tx_de_emp = 0x00,
+ .tx_downscale_amp = 0x00,
+ .gen2_tx_rate0_uniq_tran_enable = 0,
+ .gen2_tx_rate0_uniq_tran = 0x00,
+ .gen2_tx_rate1_uniq_tran_enable = 0,
+ .gen2_tx_rate1_uniq_tran = 0x00,
+ .gen2_tx_rate2_uniq_tran_enable = 1,
+ .gen2_tx_rate2_uniq_tran = 0x4c,
+ .gen2_tx_rate3_uniq_tran_enable = 0,
+ .gen2_tx_rate3_uniq_tran = 0x00,
+ .gen2_rx_tuning_enable = 0x0f,
+ .gen2_rx_tuning_params = 0x45,
+ .gen2_rx_filter_sel = 0x44,
+ }" # Type-A Port 2
+ register "usb3_ports[1]" = "USB3_PORT_GEN2_DEFAULT(OC3)" # Type-A Port 3
+ register "usb3_ports[2]" = "{
+ .enable = 1,
+ .ocpin = OC1,
+ .tx_de_emp = 0x00,
+ .tx_downscale_amp = 0x00,
+ .gen2_tx_rate0_uniq_tran_enable = 0,
+ .gen2_tx_rate0_uniq_tran = 0x00,
+ .gen2_tx_rate1_uniq_tran_enable = 0,
+ .gen2_tx_rate1_uniq_tran = 0x00,
+ .gen2_tx_rate2_uniq_tran_enable = 1,
+ .gen2_tx_rate2_uniq_tran = 0x4c,
+ .gen2_tx_rate3_uniq_tran_enable = 0,
+ .gen2_tx_rate3_uniq_tran = 0x00,
+ .gen2_rx_tuning_enable = 0x0f,
+ .gen2_rx_tuning_params = 0x3d,
+ .gen2_rx_filter_sel = 0x44,
+ }" # Type-A Port 1
register "usb3_ports[3]" = "USB3_PORT_DEFAULT(OC_SKIP)" # Type-C
- register "usb3_ports[4]" = "USB3_PORT_DEFAULT(OC0)" # Type-A Port 0
- register "usb3_ports[5]" = "USB3_PORT_DEFAULT(OC_SKIP)" # Type-A Port 4
+ register "usb3_ports[4]" = "{
+ .enable = 1,
+ .ocpin = OC0,
+ .tx_de_emp = 0x00,
+ .tx_downscale_amp = 0x00,
+ .gen2_tx_rate0_uniq_tran_enable = 0,
+ .gen2_tx_rate0_uniq_tran = 0x00,
+ .gen2_tx_rate1_uniq_tran_enable = 0,
+ .gen2_tx_rate1_uniq_tran = 0x00,
+ .gen2_tx_rate2_uniq_tran_enable = 1,
+ .gen2_tx_rate2_uniq_tran = 0x4c,
+ .gen2_tx_rate3_uniq_tran_enable = 0,
+ .gen2_tx_rate3_uniq_tran = 0x00,
+ .gen2_rx_tuning_enable = 0x0f,
+ .gen2_rx_tuning_params = 0x45,
+ .gen2_rx_filter_sel = 0x44,
+ }" # Type-A Port 0
+ register "usb3_ports[5]" = "{
+ .enable = 1,
+ .ocpin = OC_SKIP,
+ .tx_de_emp = 0x00,
+ .tx_downscale_amp = 0x00,
+ .gen2_tx_rate0_uniq_tran_enable = 0,
+ .gen2_tx_rate0_uniq_tran = 0x00,
+ .gen2_tx_rate1_uniq_tran_enable = 0,
+ .gen2_tx_rate1_uniq_tran = 0x00,
+ .gen2_tx_rate2_uniq_tran_enable = 1,
+ .gen2_tx_rate2_uniq_tran = 0x4c,
+ .gen2_tx_rate3_uniq_tran_enable = 0,
+ .gen2_tx_rate3_uniq_tran = 0x00,
+ .gen2_rx_tuning_enable = 0x0f,
+ .gen2_rx_tuning_params = 0x45,
+ .gen2_rx_filter_sel = 0x44,
+ }" # Type-A Port 4

# Bitmap for Wake Enable on USB attach/detach
register "usb2_wake_enable_bitmap" = "USB_PORT_WAKE_ENABLE(1) | \

To view, visit change 43482. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I6ec109871d682a1ae2fa4c22fdd6b87ad8a39e9e
Gerrit-Change-Number: 43482
Gerrit-PatchSet: 1
Gerrit-Owner: Tim Chen <Tim-Chen@quantatw.com>
Gerrit-Reviewer: Tim Chen <tim-chen@quanta.corp-partner.google.com>
Gerrit-MessageType: newchange