Martin Roth (martinroth(a)google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16265
-gerrit
commit a1f0df5d369de3099d20acba6cb3531fea58845f
Author: Julius Werner <jwerner(a)chromium.org>
Date: Mon Aug 15 17:58:05 2016 -0700
gru: Add USB 2.0 PHY tuning for Kevin
This patch sets some magic number in magic undocumented registers that
are rumored to make USB 2.0 signal integrity better on Kevin. I don't
see any difference (unfortunately it doesn't solve the problems with
long cables on my board), but I guess it doesn't hurt either way.
BRANCH=None
BUG=chrome-os-partner:56108,chrome-os-partner:54788
TEST=Booted Kevin with USB connected through Servo. Seems to have
roughly the same failure rate as before.
Change-Id: If31fb49f1ed7218b50f24e251e54c9400db72720
Signed-off-by: Martin Roth <martinroth(a)chromium.org>
Original-Commit-Id: 0c5c8f0f80ea1ebb042bcb91506a6100833e7e84
Original-Change-Id: Ifbd47bf6adb63a2ca5371c0b05c5ec27a0fe3195
Original-Signed-off-by: Julius Werner <jwerner(a)chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/370900
Original-Reviewed-by: Guenter Roeck <groeck(a)chromium.org>
Original-Reviewed-by: David Schneider <dnschneid(a)chromium.org>
---
src/mainboard/google/gru/mainboard.c | 9 +++++++++
src/soc/rockchip/rk3399/include/soc/grf.h | 2 +-
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/src/mainboard/google/gru/mainboard.c b/src/mainboard/google/gru/mainboard.c
index 8a6cda2..a2b74ba 100644
--- a/src/mainboard/google/gru/mainboard.c
+++ b/src/mainboard/google/gru/mainboard.c
@@ -158,6 +158,15 @@ static void configure_display(void)
static void setup_usb(void)
{
+ /* A few magic PHY tuning values that improve eye diagram amplitude
+ * and make it extra sure we get reliable communication in firmware. */
+ /* Set max ODT compensation voltage and current tuning reference. */
+ write32(&rk3399_grf->usbphy0_ctrl[3], 0x0fff02e3);
+ write32(&rk3399_grf->usbphy1_ctrl[3], 0x0fff02e3);
+ /* Set max pre-emphasis level, only on Kevin PHY0. */
+ if (IS_ENABLED(CONFIG_BOARD_GOOGLE_KEVIN))
+ write32(&rk3399_grf->usbphy0_ctrl[12], 0xffff00a7);
+
setup_usb_otg0();
setup_usb_otg1();
}
diff --git a/src/soc/rockchip/rk3399/include/soc/grf.h b/src/soc/rockchip/rk3399/include/soc/grf.h
index d76b827..c1fd690 100644
--- a/src/soc/rockchip/rk3399/include/soc/grf.h
+++ b/src/soc/rockchip/rk3399/include/soc/grf.h
@@ -73,7 +73,7 @@ struct rk3399_grf_regs {
u32 reserved11[3];
u32 usbphy0_ctrl[26];
u32 reserved12[6];
- u32 usbphy1[26];
+ u32 usbphy1_ctrl[26];
u32 reserved13[0x72f];
u32 soc_con9;
u32 reserved14[0x0a];
Werner Zeh (werner.zeh(a)siemens.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16576
-gerrit
commit 610cbf6499a9609d2d3f9ee676b39fda79b6f1c3
Author: Werner Zeh <werner.zeh(a)siemens.com>
Date: Mon Sep 12 07:54:09 2016 +0200
camelbackmountain_fsp: Select SERIRQ_CONTINUOUS_MODE
In patch 98abdbb4a8a6af9c904d882f74bd524b4c0ea2ef the default operation
mode of SERIRQ was changed from continuous to quiet. Set the mode to
continuous for this mainboard to remain the behavior unchanged.
Change-Id: I7c3675d4ee8cff428621f4e64411738193e654b2
Signed-off-by: Werner Zeh <werner.zeh(a)siemens.com>
---
src/mainboard/intel/camelbackmountain_fsp/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/mainboard/intel/camelbackmountain_fsp/Kconfig b/src/mainboard/intel/camelbackmountain_fsp/Kconfig
index a094c94..abdd970 100644
--- a/src/mainboard/intel/camelbackmountain_fsp/Kconfig
+++ b/src/mainboard/intel/camelbackmountain_fsp/Kconfig
@@ -9,6 +9,7 @@ config BOARD_SPECIFIC_OPTIONS
select TSC_MONOTONIC_TIMER
select INTEGRATED_UART if FSP_PACKAGE_DEFAULT
select HAVE_FSP_BIN if FSP_PACKAGE_DEFAULT
+ select SERIRQ_CONTINUOUS_MODE
config MAINBOARD_DIR
string
Werner Zeh (werner.zeh(a)siemens.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16575
-gerrit
commit 98abdbb4a8a6af9c904d882f74bd524b4c0ea2ef
Author: Werner Zeh <werner.zeh(a)siemens.com>
Date: Mon Sep 12 07:48:51 2016 +0200
fsp_broadwell_de: Add Kconfig switch for SERIRQ operation mode
The serial IRQ (SERIRQ) used by the LPC interface can operate either in
continuous or in quiet mode. Add a Kconfig switch to select the desired
mode. This switch can now be used on mainboard level to enable the
needed mode per mainboard.
Change-Id: Ibe246b88164a622f9c71ebe7bab752a083a49a62
Signed-off-by: Werner Zeh <werner.zeh(a)siemens.com>
---
src/soc/intel/fsp_broadwell_de/Kconfig | 7 +++++++
src/soc/intel/fsp_broadwell_de/include/soc/lpc.h | 4 ++++
src/soc/intel/fsp_broadwell_de/southcluster.c | 9 ++++++++-
3 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/src/soc/intel/fsp_broadwell_de/Kconfig b/src/soc/intel/fsp_broadwell_de/Kconfig
index fc0c763..99a2bfd 100644
--- a/src/soc/intel/fsp_broadwell_de/Kconfig
+++ b/src/soc/intel/fsp_broadwell_de/Kconfig
@@ -81,6 +81,13 @@ config CPU_MICROCODE_HEADER_FILES
string
default "../intel/cpu/broadwell_de/microcode/M1050663_07000001.h ../intel/cpu/broadwell_de/microcode/M1050662_0000000A.h ../intel/cpu/broadwell_de/microcode/MFF50661_F1000008.h"
+config SERIRQ_CONTINUOUS_MODE
+ bool
+ default n
+ help
+ If you set this option to y, the serial IRQ machine will be
+ operated in continuous mode.
+
## Broadwell-DE Specific FSP Kconfig
source src/soc/intel/fsp_broadwell_de/fsp/Kconfig
diff --git a/src/soc/intel/fsp_broadwell_de/include/soc/lpc.h b/src/soc/intel/fsp_broadwell_de/include/soc/lpc.h
index 60cdc89..8cf8889 100644
--- a/src/soc/intel/fsp_broadwell_de/include/soc/lpc.h
+++ b/src/soc/intel/fsp_broadwell_de/include/soc/lpc.h
@@ -22,6 +22,10 @@
/* LPC Interface Bridge PCI Configuration Registers */
#define REVID 0x08
#define PIRQ_RCR1 0x60
+#define SIRQ_CNTL 0x64
+#define SIRQ_EN 0x80
+#define SIRQ_MODE_QUIET 0x00
+#define SIRQ_MODE_CONT 0x40
#define PIRQ_RCR2 0x68
#define LPC_IO_DEC 0x80
#define LPC_EN 0x82
diff --git a/src/soc/intel/fsp_broadwell_de/southcluster.c b/src/soc/intel/fsp_broadwell_de/southcluster.c
index 7ed8896..e8c8706 100644
--- a/src/soc/intel/fsp_broadwell_de/southcluster.c
+++ b/src/soc/intel/fsp_broadwell_de/southcluster.c
@@ -215,7 +215,14 @@ static void sc_init(struct device *dev)
PCI_COMMAND_MASTER | PCI_COMMAND_SPECIAL);
/* Program Serial IRQ register. */
- pci_write_config8(dev, 0x64, 0xd0);
+ pci_write_config8(dev, SIRQ_CNTL, SIRQ_EN | SIRQ_MODE_CONT);
+ if (!IS_ENABLED(CONFIG_SERIRQ_CONTINUOUS_MODE)) {
+ /* If SERIRQ have to operate in quiet mode, it should have been
+ run in continuous mode for at least one frame first. Use I/O
+ access to achieve the delay of at least one LPC cycle. */
+ outb(inb(0x80), 0x80);
+ pci_write_config8(dev, SIRQ_CNTL, SIRQ_EN | SIRQ_MODE_QUIET);
+ }
sc_pirq_init(dev);
write_pci_config_irqs();
the following patch was just integrated into master:
commit 91aea428b5932c031b81a6c4921ac416f2b2c995
Author: Werner Zeh <werner.zeh(a)siemens.com>
Date: Thu Sep 8 07:27:29 2016 +0200
fsp_broadwell_de: Correct access to SIRQ_CNTL register
The serial IRQ configuration register is only 8 bit wide so switch the
PCI access from 16 bits to 8 bits.
Change-Id: Ia9fbc02251e00b31440bf103e2afc2ff285b7f2e
Signed-off-by: Werner Zeh <werner.zeh(a)siemens.com>
Reviewed-on: https://review.coreboot.org/16534
Tested-by: build bot (Jenkins)
Reviewed-by: Martin Roth <martinroth(a)google.com>
See https://review.coreboot.org/16534 for details.
-gerrit
Martin Roth (martinroth(a)google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16574
-gerrit
commit abae07125eee41bc5db14817e60156d503d8c90b
Author: Martin Roth <martinroth(a)google.com>
Date: Sun Sep 11 15:43:22 2016 -0600
cbmem: Exit with an errorlevel of 0 after printing help
When checking to see if we can run cbmem, 'cbmem --help' seems like
a reasonable way to do it. But because it was exiting with a
status code of 1, it was coming back as an error.
Change-Id: Id00091c679dbb109bc352cf8a81d67c2ae5666ec
Signed-off-by: Martin Roth <martinroth(a)google.com>
---
util/cbmem/cbmem.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/util/cbmem/cbmem.c b/util/cbmem/cbmem.c
index 885d460..525b0ed 100644
--- a/util/cbmem/cbmem.c
+++ b/util/cbmem/cbmem.c
@@ -901,7 +901,7 @@ static void print_usage(const char *name)
" -v | --version: print the version\n"
" -h | --help: print this help\n"
"\n");
- exit(1);
+ exit(0);
}
#ifdef __arm__
the following patch was just integrated into master:
commit ba349ab12eb5c6848d7e3b727d6fcd7fbe616614
Author: Idwer Vollering <vidwer(a)gmail.com>
Date: Sun Jul 24 02:10:19 2016 +0200
buildgcc: Quote command substitution
There are shells where the result of a command substitution is subject
to word splitting (e.g. dash when assigning a value inside an export
statement).
Change-Id: I70a5bc124af7ee621da2bdb4777f3eaba8adafbb
Signed-off-by: Idwer Vollering <vidwer(a)gmail.com>
Signed-off-by: Nico Huber <nico.h(a)gmx.de>
Reviewed-on: https://review.coreboot.org/15820
Reviewed-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
Tested-by: build bot (Jenkins)
See https://review.coreboot.org/15820 for details.
-gerrit
Nico Huber (nico.h(a)gmx.de) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/15820
-gerrit
commit 7262a41a2a252efcbefef344a79da7d0774facaa
Author: Idwer Vollering <vidwer(a)gmail.com>
Date: Sun Jul 24 02:10:19 2016 +0200
buildgcc: Quote command substitution
There are shells where the result of a command substitution is subject
to word splitting (e.g. dash when assigning a value inside an export
statement).
Change-Id: I70a5bc124af7ee621da2bdb4777f3eaba8adafbb
Signed-off-by: Idwer Vollering <vidwer(a)gmail.com>
Signed-off-by: Nico Huber <nico.h(a)gmx.de>
---
util/crossgcc/buildgcc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/util/crossgcc/buildgcc b/util/crossgcc/buildgcc
index d858919..9eb72f9 100755
--- a/util/crossgcc/buildgcc
+++ b/util/crossgcc/buildgcc
@@ -442,8 +442,8 @@ have_hostcflags_from_gmp() {
set_hostcflags_from_gmp() {
# Now set CFLAGS to match GMP CFLAGS but strip out -pedantic
# as GCC 4.6.x fails if it's there.
- export HOSTCFLAGS=$(grep __GMP_CFLAGS $DESTDIR$TARGETDIR/include/gmp.h |cut -d\" -f2 |\
- sed s,-pedantic,,)
+ export HOSTCFLAGS="$(grep __GMP_CFLAGS $DESTDIR$TARGETDIR/include/gmp.h |cut -d\" -f2 |\
+ sed s,-pedantic,,)"
}
build_GMP() {
Martin Roth (martinroth(a)google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16573
-gerrit
commit f07b7e0f32c4b3995a7827d9fbd8f9ce5650e45d
Author: Martin Roth <martinroth(a)google.com>
Date: Sat Sep 10 15:02:11 2016 -0600
Makefile.inc: Add aliases for submodule updates to gitconfig target
Updating submodules seem to give people headaches, so this adds a pair
of git aliases to update them.
'git sup' updates the submodules to the latest versions, but leaves any
locally modified files.
'git sup-destroy' will remove the current submodules and re-initialize
them. This deletes any local changes.
Change-Id: Id62a30d88b3b6d285b3f00555d7609509aa1561f
Signed-off-by: Martin Roth <martinroth(a)google.com>
---
Makefile.inc | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Makefile.inc b/Makefile.inc
index 0caab91..fc53edf 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -525,6 +525,8 @@ gitconfig:
fi
[ -d 3rdparty/blobs ] && cd 3rdparty/blobs && git config remote.origin.push HEAD:refs/for/master
git config remote.origin.push HEAD:refs/for/master
+ git config alias.sup '!git submodule update --remote --rebase && git submodule update --init --checkout'
+ git config alias.sup-destroy '!git submodule deinit --force "$$(git rev-parse --show-toplevel)"; git submodule init && git submodule update --checkout'
(git config --global user.name >/dev/null && git config --global user.email >/dev/null) || (printf 'Please configure your name and email in git:\n\n git config --global user.name "Your Name Comes Here"\n git config --global user.email your.email(a)example.com\n'; exit 1)
include util/crossgcc/Makefile.inc