Isaac Christensen (isaac.christensen(a)se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/6543
-gerrit
commit 8831279b0b83443a3be25dcebb9f36a62b063ebf
Author: Ronald G. Minnich <rminnich(a)gmail.com>
Date: Thu Aug 29 09:16:25 2013 -0700
exynos5420: Tighten up displayport timing loops
We were running this loop 100 times with 5 ms delays. Change it
to run 500 times with 1 ms delays, which gives us the same
overall timeout but lets us bail out a bit sooner -- in practice,
at most, 4 ms sooner but every bit counts. Note, however, that
the tighter timing does reduce opportunities for threading. There
is a non-obvious set of tradeoffs on timeouts.
Change-Id: I4af671c2a791aa92e446e66ac2fe5710d1e6aa4c
Signed-off-by: Ronald G. Minnich <rminnich(a)gmail.com>
Reviewed-on: https://chromium-review.googlesource.com/167387
Reviewed-by: David Hendricks <dhendrix(a)chromium.org>
Commit-Queue: ron minnich <rminnich(a)chromium.org>
Tested-by: ron minnich <rminnich(a)chromium.org>
(cherry picked from commit 575e910127dc74416018f182ef27ef223e61daef)
Signed-off-by: Isaac Christensen <isaac.christensen(a)se-eng.com>
---
src/cpu/samsung/exynos5420/dp.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/cpu/samsung/exynos5420/dp.c b/src/cpu/samsung/exynos5420/dp.c
index b6f83b6..c1fa17a 100644
--- a/src/cpu/samsung/exynos5420/dp.c
+++ b/src/cpu/samsung/exynos5420/dp.c
@@ -845,7 +845,7 @@ static unsigned int exynos_dp_config_video(struct edp_device_info *edp_info)
exynos_dp_start_video();
if (edp_info->video_info.master_mode == 0) {
- retry_cnt = 100;
+ retry_cnt = 500;
while (retry_cnt) {
ret = exynos_dp_is_video_stream_on();
if (ret != EXYNOS_DP_SUCCESS) {
@@ -857,7 +857,10 @@ static unsigned int exynos_dp_config_video(struct edp_device_info *edp_info)
printk(BIOS_DEBUG, "DP video stream is on\n");
break;
}
- mdelay(5);
+ /* this is a cheap operation, involving some register
+ * reads, and no AUX channel IO. A ms. delay is fine.
+ */
+ mdelay(1);
}
}
Isaac Christensen (isaac.christensen(a)se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/6542
-gerrit
commit 16f9818a1d153c58848876c95b8794b1341259b1
Author: Gabe Black <gabeblack(a)google.com>
Date: Tue Sep 24 02:36:36 2013 -0700
exynos: Get rid of the unused reset.c.
The source file reset.c, present in both the exynos5250 and 5420 directories,
is not being built for either SOC. Let's get rid of the clutter.
Change-Id: Iab4c7982a271d08cbaf3207b6f5431f0ef52697e
Signed-off-by: Gabe Black <gabeblack(a)google.com>
Reviewed-on: https://chromium-review.googlesource.com/170402
Reviewed-by: Hung-Te Lin <hungte(a)chromium.org>
Reviewed-by: David Hendrix <dhendrix(a)chromium.org>
Commit-Queue: Gabe Black <gabeblack(a)chromium.org>
Tested-by: Gabe Black <gabeblack(a)chromium.org>
(cherry picked from commit 0ce3898276ff49d171a0d8a650806f0305c0576f)
Signed-off-by: Isaac Christensen <isaac.christensen(a)se-eng.com>
---
src/cpu/samsung/exynos5250/reset.c | 26 --------------------------
src/cpu/samsung/exynos5420/reset.c | 26 --------------------------
2 files changed, 52 deletions(-)
diff --git a/src/cpu/samsung/exynos5250/reset.c b/src/cpu/samsung/exynos5250/reset.c
deleted file mode 100644
index 78571ba..0000000
--- a/src/cpu/samsung/exynos5250/reset.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * Copyright 2013 Google Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <reset.h>
-#include <arch/io.h>
-
-void soft_reset(void)
-{
- writel(0x1, samsung_get_base_swreset());
-}
diff --git a/src/cpu/samsung/exynos5420/reset.c b/src/cpu/samsung/exynos5420/reset.c
deleted file mode 100644
index 78571ba..0000000
--- a/src/cpu/samsung/exynos5420/reset.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * Copyright 2013 Google Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <reset.h>
-#include <arch/io.h>
-
-void soft_reset(void)
-{
- writel(0x1, samsung_get_base_swreset());
-}
Isaac Christensen (isaac.christensen(a)se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/6541
-gerrit
commit a218235f7b7fcb8671e0ae39c21b5eff9bbd25ea
Author: Duncan Laurie <dlaurie(a)chromium.org>
Date: Fri Oct 4 11:54:04 2013 -0700
lynxpoint: Add interrupt for GPIO controller in ACPI device
The GPIO controller uses IRQ14 as an active high level triggered
source for GPIOs that are configured to trigger shared interrupt.
This was also tested on bolt by configuring the touchscreen to use
a shared GPIO interrupt:
localhost ~ $ grep atmel_mxt_ts /proc/interrupts
54: 24 188 93 124 LP-GPIO-demux atmel_mxt_ts
Change-Id: I3765120112bae11407e5b2020399d0d0b8e3cef8
Signed-off-by: Duncan Laurie <dlaurie(a)chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/171901
Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
(cherry picked from commit 63a0c80ce5a19410d0608fede5a9fe0ec1c8e5c1)
Signed-off-by: Isaac Christensen <isaac.christensen(a)se-eng.com>
---
src/southbridge/intel/lynxpoint/acpi/serialio.asl | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/southbridge/intel/lynxpoint/acpi/serialio.asl b/src/southbridge/intel/lynxpoint/acpi/serialio.asl
index 78eb4ee..868443a 100644
--- a/src/southbridge/intel/lynxpoint/acpi/serialio.asl
+++ b/src/southbridge/intel/lynxpoint/acpi/serialio.asl
@@ -546,6 +546,8 @@ Device (GPIO)
, // ResourceSourceIndex
, // ResourceSource
BAR0)
+ Interrupt (ResourceConsumer,
+ Level, ActiveHigh, Shared, , , ) {14}
})
Method (_CRS, 0, NotSerialized)
Isaac Christensen (isaac.christensen(a)se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/6540
-gerrit
commit 9ea3ed29704ccead348718ebd6724833222492dd
Author: Vadim Bendebury <vbendeb(a)chromium.org>
Date: Wed Oct 16 18:23:25 2013 -0700
Set check-lxdialog.sh mode properly
This script is used by 'make menuconfig', but being non executable it
fails to run, causing the make invocation failure.
Setting 'x' mode bits fixes the problem.
Change-Id: I925ca4ee056937b6c38ad34f5520fd621f9d9eb0
Signed-off-by: Vadim Bendebury <vbendeb(a)chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/173564
Reviewed-by: Stefan Reinauer <reinauer(a)google.com>
Commit-Queue: Stefan Reinauer <reinauer(a)google.com>
(cherry picked from commit 3ddb9d221ecc3df968853d765b566cf0648a7525)
Signed-off-by: Isaac Christensen <isaac.christensen(a)se-eng.com>
---
payloads/libpayload/util/kconfig/lxdialog/check-lxdialog.sh | 0
1 file changed, 0 insertions(+), 0 deletions(-)
diff --git a/payloads/libpayload/util/kconfig/lxdialog/check-lxdialog.sh b/payloads/libpayload/util/kconfig/lxdialog/check-lxdialog.sh
old mode 100644
new mode 100755
Isaac Christensen (isaac.christensen(a)se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/6539
-gerrit
commit 977e4449acb7bb000ae11a736b70423f8100f586
Author: Steven Sherk <steven.sherk(a)se-eng.com>
Date: Wed Aug 14 14:55:57 2013 -0600
cbfs: Fix overwalk on file scan
A bootblock overwalk was occuring when deriving the actual
length, the bootblock size was not taken into account and bootblock
size was not aligned.
Resolved merge conflict.
Change-Id: I7eb42f8deaaf223dcf07b37bb7dde4643acd508f
Signed-off-by: Steven Sherk <steven.sherk(a)se-eng.com>
Reviewed-on: https://gerrit.chromium.org/gerrit/65989
Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
Commit-Queue: Steve Sherk <ssherk70(a)gmail.com>
Tested-by: Steve Sherk <ssherk70(a)gmail.com>
(cherry picked from commit 20b0ba479b01755fbdc7f3dd9214e8af923402ba)
Signed-off-by: Isaac Christensen <isaac.christensen(a)se-eng.com>
---
payloads/libpayload/libcbfs/cbfs_core.c | 15 +++++++++++++--
src/lib/cbfs_core.c | 15 +++++++++++++--
2 files changed, 26 insertions(+), 4 deletions(-)
diff --git a/payloads/libpayload/libcbfs/cbfs_core.c b/payloads/libpayload/libcbfs/cbfs_core.c
index a3d3e02..fb15744 100644
--- a/payloads/libpayload/libcbfs/cbfs_core.c
+++ b/payloads/libpayload/libcbfs/cbfs_core.c
@@ -119,11 +119,22 @@ struct cbfs_file *cbfs_get_file(struct cbfs_media *media, const char *name)
// TODO Add a "size" in CBFS header for a platform independent way to
// determine the end of CBFS data.
#if defined(CONFIG_LP_ARCH_X86) && CONFIG_LP_ARCH_X86
- romsize -= htonl(header->bootblocksize);
+ // resolve actual length of ROM used for CBFS components
+ // the bootblock size was not taken into account
+ romsize -= ntohl(header->bootblocksize);
+
+ // fine tune the length to handle alignment positioning.
+ // using (bootblock size) % align, to derive the
+ // number of bytes the bootblock is off from the alignment size.
+ if ((ntohl(header->bootblocksize) % align))
+ romsize -= (align - (ntohl(header->bootblocksize) % align));
+ else
+ romsize -= 1;
#endif
- DEBUG("CBFS location: 0x%x~0x%x, align: %d\n", offset, romsize, align);
+ DEBUG("CBFS location: 0x%x~0x%x, align: %d\n", offset, romsize, align);
DEBUG("Looking for '%s' starting from 0x%x.\n", name, offset);
+
media->open(media);
while (offset < romsize &&
media->read(media, &file, offset, sizeof(file)) == sizeof(file)) {
diff --git a/src/lib/cbfs_core.c b/src/lib/cbfs_core.c
index 7ef103b..264d9a8 100644
--- a/src/lib/cbfs_core.c
+++ b/src/lib/cbfs_core.c
@@ -119,11 +119,22 @@ struct cbfs_file *cbfs_get_file(struct cbfs_media *media, const char *name)
// TODO Add a "size" in CBFS header for a platform independent way to
// determine the end of CBFS data.
#if defined(CONFIG_ARCH_X86) && CONFIG_ARCH_X86
- romsize -= htonl(header->bootblocksize);
+ // resolve actual length of ROM used for CBFS components
+ // the bootblock size was not taken into account
+ romsize -= ntohl(header->bootblocksize);
+
+ // fine tune the length to handle alignment positioning.
+ // using (bootblock size) % align, to derive the
+ // number of bytes the bootblock is off from the alignment size.
+ if ((ntohl(header->bootblocksize) % align))
+ romsize -= (align - (ntohl(header->bootblocksize) % align));
+ else
+ romsize -= 1;
#endif
- DEBUG("CBFS location: 0x%x~0x%x, align: %d\n", offset, romsize, align);
+ DEBUG("CBFS location: 0x%x~0x%x, align: %d\n", offset, romsize, align);
DEBUG("Looking for '%s' starting from 0x%x.\n", name, offset);
+
media->open(media);
while (offset < romsize &&
media->read(media, &file, offset, sizeof(file)) == sizeof(file)) {
Isaac Christensen (isaac.christensen(a)se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/6537
-gerrit
commit 87dbfdada3fa8cebd16f2e0ef1a39df5b96675a5
Author: Julius Werner <jwerner(a)chromium.org>
Date: Mon Oct 28 20:00:50 2013 -0700
cbfs: Check return value of map() for error
The CBFS core checks the result of a media->map() operation in multiple
places for CBFS_MEDIA_INVALID_MAP_ADDRESS, suggesting that this is a
valid response. However, it ironically fails to do so when actually
mapping the CBFS file itself, which can fail on buffer-constrained
systems since the size is much larger than when mapping metadata. This
patch adds a check with an error message and a NULL pointer return for
that case to make it easier to understand this condition.
Change-Id: Icae3dd20d3d111cdfc4f2dc6397b52174349b140
Signed-off-by: Julius Werner <jwerner(a)chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/174951
Reviewed-by: Gabe Black <gabeblack(a)chromium.org>
Reviewed-by: Hung-Te Lin <hungte(a)chromium.org>
(cherry picked from commit 63f2c4465f9633a637186e69bc3862d5413106ac)
Signed-off-by: Isaac Christensen <isaac.christensen(a)se-eng.com>
---
src/lib/cbfs_core.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/lib/cbfs_core.c b/src/lib/cbfs_core.c
index 7ef103b..30cb194 100644
--- a/src/lib/cbfs_core.c
+++ b/src/lib/cbfs_core.c
@@ -156,6 +156,11 @@ struct cbfs_file *cbfs_get_file(struct cbfs_media *media, const char *name)
file_ptr = media->map(media, offset,
file_offset + file_len);
media->close(media);
+ if (file_ptr == CBFS_MEDIA_INVALID_MAP_ADDRESS) {
+ ERROR("ERROR: Mapping %s failed (insufficient "
+ "buffer space?).\n", file_name);
+ return NULL;
+ }
return file_ptr;
} else {
DEBUG(" (unmatched file @0x%x: %s)\n", offset,