Gabe Black (gabeblack(a)chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3667
-gerrit
commit 8dfe60cd6d482f4cac9d2ab38af3b376f161af3d
Author: Stefan Reinauer <reinauer(a)chromium.org>
Date: Mon May 20 15:21:48 2013 -0700
exynos5420: Don't disable and re-enable the MMU when uncaching the framebuffer
At one time it seemed to be necessary to disable and then re-enable the
MMU when setting the framebuffer to be …
[View More]uncache-able due to bugs in the
MMU management code. Since those bugs have been fixed, this is no longer
necessary.
Change-Id: I7ce825cf5eaaa95119364d780cba0935752e4632
Signed-off-by: Gabe Black <gabeblack(a)chromium.org>
Signed-off-by: Stefan Reinauer <reinauer(a)chromium.org>
---
src/cpu/samsung/exynos5420/cpu.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/src/cpu/samsung/exynos5420/cpu.c b/src/cpu/samsung/exynos5420/cpu.c
index e83c16a..1d51174 100644
--- a/src/cpu/samsung/exynos5420/cpu.c
+++ b/src/cpu/samsung/exynos5420/cpu.c
@@ -105,15 +105,11 @@ static void exynos_displayport_init(device_t dev)
* Note: We may want to do something clever to ensure the framebuffer
* region is aligned such that we don't change dcache policy for other
* stuff inadvertantly.
- *
- * FIXME: Is disabling/re-enabling the MMU entirely necessary?
*/
uint32_t lower = ALIGN_DOWN(lcdbase, MiB);
uint32_t upper = ALIGN_UP(lcdbase + fb_size, MiB);
dcache_clean_invalidate_by_mva(lower, upper - lower);
- dcache_mmu_disable();
mmu_config_range(lower/MiB, (upper - lower)/MiB, DCACHE_OFF);
- dcache_mmu_enable();
mmio_resource(dev, 1, lcdbase/KiB, (fb_size + KiB - 1)/KiB);
printk(BIOS_DEBUG,
[View Less]
Gabe Black (gabeblack(a)chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3679
-gerrit
commit 09f3eb94659e9917334933d89717c4215eb642b4
Author: Ronald G. Minnich <rminnich(a)google.com>
Date: Tue Jun 18 13:02:23 2013 -0700
ARM: when setting a GPIO to put, set the value, then the direction
We saw a problem on x86 last year in which setting direction, then value,
glitched the output and caused problems. Change this …
[View More]code to set the output,
then the direction.
Change-Id: I3e1e17ffe82ae270eea539530368a58c6cfe0ebe
Signed-off-by: Ronald G. Minnich <rminnich(a)google.com>
Signed-off-by: Gabe Black <gabeblack(a)chromium.org>
---
src/cpu/samsung/exynos5250/gpio.c | 4 ++--
src/cpu/samsung/exynos5420/gpio.c | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/cpu/samsung/exynos5250/gpio.c b/src/cpu/samsung/exynos5250/gpio.c
index b8ebb0a..2a93328 100644
--- a/src/cpu/samsung/exynos5250/gpio.c
+++ b/src/cpu/samsung/exynos5250/gpio.c
@@ -170,14 +170,14 @@ int gpio_direction_output(unsigned gpio, int value)
unsigned int val;
struct gpio_bank *bank = gpio_get_bank(gpio);
- gpio_cfg_pin(gpio, GPIO_OUTPUT);
-
val = readl(&bank->dat);
val &= ~DAT_MASK(GPIO_BIT(gpio));
if (value)
val |= DAT_SET(GPIO_BIT(gpio));
writel(val, &bank->dat);
+ gpio_cfg_pin(gpio, GPIO_OUTPUT);
+
return 0;
}
diff --git a/src/cpu/samsung/exynos5420/gpio.c b/src/cpu/samsung/exynos5420/gpio.c
index b8ebb0a..2a93328 100644
--- a/src/cpu/samsung/exynos5420/gpio.c
+++ b/src/cpu/samsung/exynos5420/gpio.c
@@ -170,14 +170,14 @@ int gpio_direction_output(unsigned gpio, int value)
unsigned int val;
struct gpio_bank *bank = gpio_get_bank(gpio);
- gpio_cfg_pin(gpio, GPIO_OUTPUT);
-
val = readl(&bank->dat);
val &= ~DAT_MASK(GPIO_BIT(gpio));
if (value)
val |= DAT_SET(GPIO_BIT(gpio));
writel(val, &bank->dat);
+ gpio_cfg_pin(gpio, GPIO_OUTPUT);
+
return 0;
}
[View Less]
Gabe Black (gabeblack(a)chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3672
-gerrit
commit 48973919eb019cf5eaf54861b50d0ee2259a051c
Author: Gabe Black <gabeblack(a)google.com>
Date: Fri Jun 14 15:53:23 2013 -0700
ARM: Tell the linker memset and memcpy are functions.
The memset and memcpy functions are assembled as ARM code, likely because
that's the default of the assembler. Without special annotation, the …
[View More]assembler
and linker don't know that those symbols are functions which need special
handling so that ARM/thumb issues are handled properly. This change adds that
annotation which gets those functions working in Coreboot which is compiled as
thumb. Libpayload and depthcharge are compiled as ARM so they don't *need* the
annotation since it just works out in ARM mode, but it's the safe thing to do
in case we change that in the future.
We should explicitly select ARM vs. thumb when assembling assembly files to be
consistent across builds and toolchains.
Change-Id: I814b137064cf46ae9e2744ff6c223b695dc1ef01
Signed-off-by: Gabe Black <gabeblack(a)chromium.org>
---
payloads/libpayload/arch/armv7/memcpy.S | 1 +
payloads/libpayload/arch/armv7/memset.S | 1 +
src/arch/armv7/memcpy.S | 1 +
src/arch/armv7/memset.S | 1 +
4 files changed, 4 insertions(+)
diff --git a/payloads/libpayload/arch/armv7/memcpy.S b/payloads/libpayload/arch/armv7/memcpy.S
index 549320c..e68b28f 100644
--- a/payloads/libpayload/arch/armv7/memcpy.S
+++ b/payloads/libpayload/arch/armv7/memcpy.S
@@ -57,6 +57,7 @@
/* Prototype: void *memcpy(void *dest, const void *src, size_t n); */
+.type memcpy, function
.globl memcpy
memcpy:
diff --git a/payloads/libpayload/arch/armv7/memset.S b/payloads/libpayload/arch/armv7/memset.S
index 4ff4c3c..aa4f57a 100644
--- a/payloads/libpayload/arch/armv7/memset.S
+++ b/payloads/libpayload/arch/armv7/memset.S
@@ -27,6 +27,7 @@
* memset again.
*/
+.type memset, function
.globl memset
memset:
ands r3, r0, #3 @ 1 unaligned?
diff --git a/src/arch/armv7/memcpy.S b/src/arch/armv7/memcpy.S
index f04113f..921fc2a 100644
--- a/src/arch/armv7/memcpy.S
+++ b/src/arch/armv7/memcpy.S
@@ -57,6 +57,7 @@
/* Prototype: void *memcpy(void *dest, const void *src, size_t n); */
+.type memcpy, function
.globl memcpy
memcpy:
diff --git a/src/arch/armv7/memset.S b/src/arch/armv7/memset.S
index 3ea2721..a3cc947 100644
--- a/src/arch/armv7/memset.S
+++ b/src/arch/armv7/memset.S
@@ -27,6 +27,7 @@
* memset again.
*/
+.type memset, function
.globl memset
memset:
ands r3, r0, #3 @ 1 unaligned?
[View Less]