the following patch was just integrated into master:
commit 57d4c30e22b5f35f9103240aa731798a21fe5a24
Author: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Date: Sat Feb 11 17:31:25 2017 +0200
lynxpoint bd82x6x: Enable PCI-to-PCI bridge
Once the PCI command register is written the bridge forwards
future IO and memory regions, as programmed in the respective base
and limit registers, to the secondary PCI bus.
It was previously argumented this is copy-paste and never known
to be required for these more recent platforms:
https://review.coreboot.org/#/c/2706/
Change-Id: Ic8911500a30bc83587af8d4b393b66783fa52e18
Signed-off-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Reviewed-on: https://review.coreboot.org/18330
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
See https://review.coreboot.org/18330 for details.
-gerrit
Patrick Georgi (pgeorgi(a)google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/18462
-gerrit
commit c09180f275ae6566dae53a7689381f3aed457c93
Author: William wu <wulf(a)rock-chips.com>
Date: Mon Jan 23 20:54:22 2017 +0800
google/gru: Tuning USB 2.0 PHY0 and PHY1 squelch detection threshold
According to USB 2.0 Spec Table 7-7, the High-speed squelch
detection threshold Min 100mV and Max 150mV, and we set USB
2.0 PHY0 and PHY1 squelch detection threshold to 150mV by
default, so if the amplitude of differential voltage envelope
is < 150 mV, the USB 2.0 PHYs envelope detector will indicate
it as squelch.
On Kevin board, if we connect usb device with Samsung U2 cable,
we can see that the impedance of U2 cable is too big according
to the eye-diagram test report, and this cause serious signal
attenuation at the end of receiver, the amplitude of differential
voltage falls below 150mV.
This patch aims to reduce the PHY0 and PHY1 otg-ports squelch
detection threshold to 125mV (host-ports still use 150mV by
default), this is helpful to increase USB 2.0 PHY compatibility.
BRANCH=gru
BUG=chrome-os-partner:62320
TEST=Plug Samsung U2 cable + SEC P3 HDD 500GB/Galaxy S3 into
Type-C port, check if the USB device can be detected.
Change-Id: Ia0a2d354781c2ac757938409490f7c4eecdffe61
Signed-off-by: Patrick Georgi <pgeorgi(a)chromium.org>
Original-Commit-Id: 7d74311c25762668386061234df0562f84b7203e
Original-Change-Id: Ib20772f8fc2484d34c69f5938818aaa81ded7ed8
Original-Signed-off-by: William wu <wulf(a)rock-chips.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/431015
Original-Commit-Ready: Caesar Wang <wxt(a)rock-chips.com>
Original-Tested-by: Inno Park <ih.yoo.park(a)samsung.com>
Original-Reviewed-by: Julius Werner <jwerner(a)chromium.org>
---
src/mainboard/google/gru/mainboard.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/mainboard/google/gru/mainboard.c b/src/mainboard/google/gru/mainboard.c
index 5926e49..bb9b6fc 100644
--- a/src/mainboard/google/gru/mainboard.c
+++ b/src/mainboard/google/gru/mainboard.c
@@ -260,15 +260,20 @@ static void setup_usb(void)
RK_CLRSETBITS(0xffff, 0xa7));
/*
- * Disable the pre-emphasize in eop state and chirp
+ * 1. Disable the pre-emphasize in eop state and chirp
* state to avoid mis-trigger the disconnect detection
* and also avoid high-speed handshake fail for PHY0
* and PHY1 consist of otg-port and host-port.
+ *
+ * 2. Configure PHY0 and PHY1 otg-ports squelch detection
+ * threshold to 125mV (default is 150mV).
*/
- write32(&rk3399_grf->usbphy0_ctrl[0], RK_CLRBITS(0x3));
- write32(&rk3399_grf->usbphy1_ctrl[0], RK_CLRBITS(0x3));
- write32(&rk3399_grf->usbphy0_ctrl[13], RK_CLRBITS(0x3));
- write32(&rk3399_grf->usbphy1_ctrl[13], RK_CLRBITS(0x3));
+ write32(&rk3399_grf->usbphy0_ctrl[0],
+ RK_CLRSETBITS(7 << 13 | 3 << 0, 6 << 13));
+ write32(&rk3399_grf->usbphy1_ctrl[0],
+ RK_CLRSETBITS(7 << 13 | 3 << 0, 6 << 13));
+ write32(&rk3399_grf->usbphy0_ctrl[13], RK_CLRBITS(3 << 0));
+ write32(&rk3399_grf->usbphy1_ctrl[13], RK_CLRBITS(3 << 0));
/*
* ODT auto compensation bypass, and set max driver
Patrick Georgi (pgeorgi(a)google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/18460
-gerrit
commit 940af6a05600ad5ebc7cc84c1d9a61cce667858f
Author: Caesar Wang <wxt(a)rock-chips.com>
Date: Wed Jan 4 18:26:04 2017 +0800
google/gru: update the pwm regulator
As David commented the "Bob and other follow-ons match Gru, Kevin should
be the special case here", and update the calculations value for gru/bob
board.
From the actual tests, some regulator voltage than the actual set of less
than 20mv on bob board. (e.g: little-cpus and Center-logic) Update the
{min, max} regulator voltage for Bob board. Make sure we get the accurate
voltage.
BUG=chrome-os-partner:61497
BRANCH=none
TEST=boot up Bob, measure the voltage for little cpu and C-logic.
Change-Id: Iad881b41d67708776bfb681487cf8cec8518064e
Signed-off-by: Patrick Georgi <pgeorgi(a)chromium.org>
Original-Commit-Id: 25e133815f49018e7496c75077b8559c207350a4
Original-Change-Id: I3098c742c7ec355c88f45bd1d93f878a7976a6b4
Original-Signed-off-by: Caesar Wang <wxt(a)rock-chips.com>
Original-Signed-off-by: Shasha Zhao <Sarah_Zhao(a)asus.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/424523
Original-Reviewed-by: David Schneider <dnschneid(a)chromium.org>
Original-Reviewed-by: Brian Norris <briannorris(a)chromium.org>
Original-Signed-off-by: Shasha Zhao <Sarah_Zhao(a)asus.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/430403
Original-Reviewed-by: Julius Werner <jwerner(a)chromium.org>
---
src/mainboard/google/gru/pwm_regulator.c | 30 ++++++++++++++++++++----------
1 file changed, 20 insertions(+), 10 deletions(-)
diff --git a/src/mainboard/google/gru/pwm_regulator.c b/src/mainboard/google/gru/pwm_regulator.c
index a81480a..426b989 100644
--- a/src/mainboard/google/gru/pwm_regulator.c
+++ b/src/mainboard/google/gru/pwm_regulator.c
@@ -28,29 +28,39 @@
* board design / resistors / capacitors / regulators but due to
* clock dividers we actually get 3337.
*/
-#define PWM_PERIOD 3337
-#define PWM_DESIGN_VOLTAGE_MIN 8000
-#define PWM_DESIGN_VOLTAGE_MAX 15000
+#define PWM_PERIOD 3337
+#define PWM_DESIGN_VOLTAGE_MIN_OUTDATED 8000
+#define PWM_DESIGN_VOLTAGE_MAX_OUTDATED 15000
/* Later boards (Kevin rev6+, Gru rev2+) use different regulator ranges. */
-int pwm_design_voltage_later[][2] = {
+int kevin6_pwm_design_voltage[][2] = {
[PWM_REGULATOR_GPU] = {7858, 12177},
[PWM_REGULATOR_BIG] = {7987, 13022},
[PWM_REGULATOR_LIT] = {7991, 13037},
[PWM_REGULATOR_CENTERLOG] = {8001, 10497}
};
+int pwm_design_voltage[][2] = {
+ [PWM_REGULATOR_GPU] = {7864, 12177},
+ [PWM_REGULATOR_BIG] = {8001, 13022},
+ [PWM_REGULATOR_LIT] = {7977, 13078},
+ [PWM_REGULATOR_CENTERLOG] = {7994, 10499}
+};
+
void pwm_regulator_configure(enum pwm_regulator pwm, int millivolt)
{
int duty_ns, voltage_max, voltage_min;
int voltage = millivolt * 10; /* for higer calculation accuracy */
- voltage_min = PWM_DESIGN_VOLTAGE_MIN;
- voltage_max = PWM_DESIGN_VOLTAGE_MAX;
- if (!(IS_ENABLED(CONFIG_BOARD_GOOGLE_KEVIN) && board_id() < 6) &&
- !(IS_ENABLED(CONFIG_BOARD_GOOGLE_GRU) && board_id() < 2)) {
- voltage_min = pwm_design_voltage_later[pwm][0];
- voltage_max = pwm_design_voltage_later[pwm][1];
+ voltage_min = pwm_design_voltage[pwm][0];
+ voltage_max = pwm_design_voltage[pwm][1];
+ if ((IS_ENABLED(CONFIG_BOARD_GOOGLE_KEVIN) && board_id() < 6) ||
+ (IS_ENABLED(CONFIG_BOARD_GOOGLE_GRU) && board_id() < 2)) {
+ voltage_min = PWM_DESIGN_VOLTAGE_MIN_OUTDATED;
+ voltage_max = PWM_DESIGN_VOLTAGE_MAX_OUTDATED;
+ } else if (IS_ENABLED(CONFIG_BOARD_GOOGLE_KEVIN) && board_id() >= 6){
+ voltage_min = kevin6_pwm_design_voltage[pwm][0];
+ voltage_max = kevin6_pwm_design_voltage[pwm][1];
}
assert(voltage <= voltage_max && voltage >= voltage_min);
the following patch was just integrated into master:
commit a5c029f235d07707f2d6d9600c0ea3af55c88b81
Author: Patrick Georgi <pgeorgi(a)chromium.org>
Date: Thu Feb 23 18:14:15 2017 +0100
intel/minnow3: follow up with recent changes in master
minnow3 doesn't build right now due to API divergence on master branch.
Follow up with recent changes.
Change-Id: Iee84750292f22aa040127bcbfe523a0b9eaa8176
Signed-off-by: Patrick Georgi <pgeorgi(a)chromium.org>
Reviewed-on: https://review.coreboot.org/18476
Reviewed-by: Ronald G. Minnich <rminnich(a)gmail.com>
Reviewed-by: Martin Roth <martinroth(a)google.com>
Tested-by: build bot (Jenkins)
See https://review.coreboot.org/18476 for details.
-gerrit
Patrick Georgi (pgeorgi(a)google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/18462
-gerrit
commit 069e83c3e9fc268024b5bca78d017bbf4feb91e9
Author: William wu <wulf(a)rock-chips.com>
Date: Mon Jan 23 20:54:22 2017 +0800
google/gru: Tuning USB 2.0 PHY0 and PHY1 squelch detection threshold
According to USB 2.0 Spec Table 7-7, the High-speed squelch
detection threshold Min 100mV and Max 150mV, and we set USB
2.0 PHY0 and PHY1 squelch detection threshold to 150mV by
default, so if the amplitude of differential voltage envelope
is < 150 mV, the USB 2.0 PHYs envelope detector will indicate
it as squelch.
On Kevin board, if we connect usb device with Samsung U2 cable,
we can see that the impedance of U2 cable is too big according
to the eye-diagram test report, and this cause serious signal
attenuation at the end of receiver, the amplitude of differential
voltage falls below 150mV.
This patch aims to reduce the PHY0 and PHY1 otg-ports squelch
detection threshold to 125mV (host-ports still use 150mV by
default), this is helpful to increase USB 2.0 PHY compatibility.
BRANCH=gru
BUG=chrome-os-partner:62320
TEST=Plug Samsung U2 cable + SEC P3 HDD 500GB/Galaxy S3 into
Type-C port, check if the USB device can be detected.
Change-Id: Ia0a2d354781c2ac757938409490f7c4eecdffe61
Signed-off-by: Patrick Georgi <pgeorgi(a)chromium.org>
Original-Commit-Id: 7d74311c25762668386061234df0562f84b7203e
Original-Change-Id: Ib20772f8fc2484d34c69f5938818aaa81ded7ed8
Original-Signed-off-by: William wu <wulf(a)rock-chips.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/431015
Original-Commit-Ready: Caesar Wang <wxt(a)rock-chips.com>
Original-Tested-by: Inno Park <ih.yoo.park(a)samsung.com>
Original-Reviewed-by: Julius Werner <jwerner(a)chromium.org>
---
src/mainboard/google/gru/mainboard.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/mainboard/google/gru/mainboard.c b/src/mainboard/google/gru/mainboard.c
index 5926e49..bb9b6fc 100644
--- a/src/mainboard/google/gru/mainboard.c
+++ b/src/mainboard/google/gru/mainboard.c
@@ -260,15 +260,20 @@ static void setup_usb(void)
RK_CLRSETBITS(0xffff, 0xa7));
/*
- * Disable the pre-emphasize in eop state and chirp
+ * 1. Disable the pre-emphasize in eop state and chirp
* state to avoid mis-trigger the disconnect detection
* and also avoid high-speed handshake fail for PHY0
* and PHY1 consist of otg-port and host-port.
+ *
+ * 2. Configure PHY0 and PHY1 otg-ports squelch detection
+ * threshold to 125mV (default is 150mV).
*/
- write32(&rk3399_grf->usbphy0_ctrl[0], RK_CLRBITS(0x3));
- write32(&rk3399_grf->usbphy1_ctrl[0], RK_CLRBITS(0x3));
- write32(&rk3399_grf->usbphy0_ctrl[13], RK_CLRBITS(0x3));
- write32(&rk3399_grf->usbphy1_ctrl[13], RK_CLRBITS(0x3));
+ write32(&rk3399_grf->usbphy0_ctrl[0],
+ RK_CLRSETBITS(7 << 13 | 3 << 0, 6 << 13));
+ write32(&rk3399_grf->usbphy1_ctrl[0],
+ RK_CLRSETBITS(7 << 13 | 3 << 0, 6 << 13));
+ write32(&rk3399_grf->usbphy0_ctrl[13], RK_CLRBITS(3 << 0));
+ write32(&rk3399_grf->usbphy1_ctrl[13], RK_CLRBITS(3 << 0));
/*
* ODT auto compensation bypass, and set max driver
Patrick Georgi (pgeorgi(a)google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/18460
-gerrit
commit a6f150f290e82b9ecb2d29ce8a317a8743ff23c1
Author: Caesar Wang <wxt(a)rock-chips.com>
Date: Wed Jan 4 18:26:04 2017 +0800
google/gru: update the pwm regulator
As David commented the "Bob and other follow-ons match Gru, Kevin should
be the special case here", and update the calculations value for gru/bob
board.
From the actual tests, some regulator voltage than the actual set of less
than 20mv on bob board. (e.g: little-cpus and Center-logic) Update the
{min, max} regulator voltage for Bob board. Make sure we get the accurate
voltage.
BUG=chrome-os-partner:61497
BRANCH=none
TEST=boot up Bob, measure the voltage for little cpu and C-logic.
Change-Id: Iad881b41d67708776bfb681487cf8cec8518064e
Signed-off-by: Patrick Georgi <pgeorgi(a)chromium.org>
Original-Commit-Id: 25e133815f49018e7496c75077b8559c207350a4
Original-Change-Id: I3098c742c7ec355c88f45bd1d93f878a7976a6b4
Original-Signed-off-by: Caesar Wang <wxt(a)rock-chips.com>
Original-Signed-off-by: Shasha Zhao <Sarah_Zhao(a)asus.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/424523
Original-Reviewed-by: David Schneider <dnschneid(a)chromium.org>
Original-Reviewed-by: Brian Norris <briannorris(a)chromium.org>
Original-Signed-off-by: Shasha Zhao <Sarah_Zhao(a)asus.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/430403
Original-Reviewed-by: Julius Werner <jwerner(a)chromium.org>
---
src/mainboard/google/gru/pwm_regulator.c | 30 ++++++++++++++++++++----------
1 file changed, 20 insertions(+), 10 deletions(-)
diff --git a/src/mainboard/google/gru/pwm_regulator.c b/src/mainboard/google/gru/pwm_regulator.c
index a81480a..426b989 100644
--- a/src/mainboard/google/gru/pwm_regulator.c
+++ b/src/mainboard/google/gru/pwm_regulator.c
@@ -28,29 +28,39 @@
* board design / resistors / capacitors / regulators but due to
* clock dividers we actually get 3337.
*/
-#define PWM_PERIOD 3337
-#define PWM_DESIGN_VOLTAGE_MIN 8000
-#define PWM_DESIGN_VOLTAGE_MAX 15000
+#define PWM_PERIOD 3337
+#define PWM_DESIGN_VOLTAGE_MIN_OUTDATED 8000
+#define PWM_DESIGN_VOLTAGE_MAX_OUTDATED 15000
/* Later boards (Kevin rev6+, Gru rev2+) use different regulator ranges. */
-int pwm_design_voltage_later[][2] = {
+int kevin6_pwm_design_voltage[][2] = {
[PWM_REGULATOR_GPU] = {7858, 12177},
[PWM_REGULATOR_BIG] = {7987, 13022},
[PWM_REGULATOR_LIT] = {7991, 13037},
[PWM_REGULATOR_CENTERLOG] = {8001, 10497}
};
+int pwm_design_voltage[][2] = {
+ [PWM_REGULATOR_GPU] = {7864, 12177},
+ [PWM_REGULATOR_BIG] = {8001, 13022},
+ [PWM_REGULATOR_LIT] = {7977, 13078},
+ [PWM_REGULATOR_CENTERLOG] = {7994, 10499}
+};
+
void pwm_regulator_configure(enum pwm_regulator pwm, int millivolt)
{
int duty_ns, voltage_max, voltage_min;
int voltage = millivolt * 10; /* for higer calculation accuracy */
- voltage_min = PWM_DESIGN_VOLTAGE_MIN;
- voltage_max = PWM_DESIGN_VOLTAGE_MAX;
- if (!(IS_ENABLED(CONFIG_BOARD_GOOGLE_KEVIN) && board_id() < 6) &&
- !(IS_ENABLED(CONFIG_BOARD_GOOGLE_GRU) && board_id() < 2)) {
- voltage_min = pwm_design_voltage_later[pwm][0];
- voltage_max = pwm_design_voltage_later[pwm][1];
+ voltage_min = pwm_design_voltage[pwm][0];
+ voltage_max = pwm_design_voltage[pwm][1];
+ if ((IS_ENABLED(CONFIG_BOARD_GOOGLE_KEVIN) && board_id() < 6) ||
+ (IS_ENABLED(CONFIG_BOARD_GOOGLE_GRU) && board_id() < 2)) {
+ voltage_min = PWM_DESIGN_VOLTAGE_MIN_OUTDATED;
+ voltage_max = PWM_DESIGN_VOLTAGE_MAX_OUTDATED;
+ } else if (IS_ENABLED(CONFIG_BOARD_GOOGLE_KEVIN) && board_id() >= 6){
+ voltage_min = kevin6_pwm_design_voltage[pwm][0];
+ voltage_max = kevin6_pwm_design_voltage[pwm][1];
}
assert(voltage <= voltage_max && voltage >= voltage_min);