nixpkgs/pkgs/misc/uboot/vexpress-Use-config_distro_bootcmd.patch
Tuomas Tynkkynen 60ec9a557c U-Boot: 2015.07 -> 2015.10
Someone submitted conflicting (and non-complete) distro bootconfig
support for the Versatile board, so the patch needs changing, yet again.
But at least it's getting smaller.
2015-10-26 21:48:51 +02:00

83 lines
2.6 KiB
Diff

From 98f62c27fe481dc2d444d70265268d2369d8a998 Mon Sep 17 00:00:00 2001
From: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
Date: Mon, 8 Jun 2015 22:29:23 +0300
Subject: [PATCH] vexpress: Use config_distro_bootcmd
Also had to hack cli_readline.c, as one codepath in
cli_readline_into_buffer doesn't respect the timeout.
---
common/cli_readline.c | 12 +++++++++++-
configs/vexpress_ca9x4_defconfig | 2 --
include/configs/vexpress_common.h | 2 +-
3 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/common/cli_readline.c b/common/cli_readline.c
index c1476e4..5063a0a 100644
--- a/common/cli_readline.c
+++ b/common/cli_readline.c
@@ -517,6 +517,7 @@ int cli_readline_into_buffer(const char *const prompt, char *buffer,
int plen = 0; /* prompt length */
int col; /* output column cnt */
char c;
+ int first = 1;
/* print prompt */
if (prompt) {
@@ -528,7 +529,16 @@ int cli_readline_into_buffer(const char *const prompt, char *buffer,
for (;;) {
if (bootretry_tstc_timeout())
return -2; /* timed out */
- WATCHDOG_RESET(); /* Trigger watchdog, if needed */
+ if (first && timeout) {
+ uint64_t etime = endtick(timeout);
+
+ while (!tstc()) { /* while no incoming data */
+ if (get_ticks() >= etime)
+ return -2; /* timed out */
+ WATCHDOG_RESET();
+ }
+ first = 0;
+ }
#ifdef CONFIG_SHOW_ACTIVITY
while (!tstc()) {
diff --git a/configs/vexpress_ca9x4_defconfig b/configs/vexpress_ca9x4_defconfig
index 2947fc1..9a5123d 100644
--- a/configs/vexpress_ca9x4_defconfig
+++ b/configs/vexpress_ca9x4_defconfig
@@ -5,11 +5,9 @@ CONFIG_TARGET_VEXPRESS_CA9X4=y
# CONFIG_CMD_IMLS is not set
# CONFIG_CMD_XIMG is not set
# CONFIG_CMD_EDITENV is not set
-# CONFIG_CMD_ENV_EXISTS is not set
# CONFIG_CMD_LOADB is not set
# CONFIG_CMD_LOADS is not set
# CONFIG_CMD_FPGA is not set
-# CONFIG_CMD_ECHO is not set
# CONFIG_CMD_ITEST is not set
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_NFS is not set
diff --git a/include/configs/vexpress_common.h b/include/configs/vexpress_common.h
index 98f6ae9..062532a 100644
--- a/include/configs/vexpress_common.h
+++ b/include/configs/vexpress_common.h
@@ -185,7 +185,6 @@
CONFIG_SYS_INIT_RAM_SIZE - \
GENERATED_GBL_DATA_SIZE)
#define CONFIG_SYS_INIT_SP_ADDR CONFIG_SYS_GBL_DATA_OFFSET
-#define CONFIG_CMD_ECHO
#include <config_distro_defaults.h>
@@ -225,6 +224,7 @@
#define CONFIG_EXTRA_ENV_SETTINGS \
CONFIG_PLATFORM_ENV_SETTINGS \
BOOTENV \
+ "fdtfile=vexpress-v2p-ca9.dtb\0" \
"console=ttyAMA0,38400n8\0" \
"dram=1024M\0" \
"root=/dev/sda1 rw\0" \
--
2.6.0