Re: [U-Boot] [PATCH 13/14] New command bootmenu: ANSI terminal Boot Menu support

2012-02-13 Thread Mike Frysinger
On Wednesday 25 January 2012 14:57:19 Pali Rohár wrote:
 On Wednesday 25 January 2012 19:18:50 Marek Vasut wrote:
  Do you need this command if you already have common/menu.c?
 
 I need menu which can work with ANSI terminal and framebuffer on device
 screen. Something which can easy choose booting system...
 
 I can look at menu.c if it can replace my bootmenu (or change bootmenu code
 to use menu.c)...

yes, as i suggested before, you should be merging with the existing menu code 
and not proposing parallel implementations

so NAK this for now
-mike


signature.asc
Description: This is a digitally signed message part.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 13/14] New command bootmenu: ANSI terminal Boot Menu support

2012-01-27 Thread Sergey Lapin
On Wed, Jan 25, 2012 at 08:57:19PM +0100, Pali Rohár wrote:
 On Wednesday 25 January 2012 19:18:50 Marek Vasut wrote:
  Do you need this command if you already have common/menu.c?
  
 
 I need menu which can work with ANSI terminal and framebuffer on device 
 screen. Something which can easy choose booting system...
 
 I can look at menu.c if it can replace my bootmenu (or change bootmenu code 
 to 
 use menu.c)...
 
 Anyway this patch [13] and next [14] can be reviewed separatly. Nokia RX-51 
 support is in patches 1-12. Patch 14 is additional for rx51, which only add 
 this bootmenu support. U-Boot rx51 port working fine without 13 and 14.
Regardless of whatever when you add new commands it might be useful to add
some documentation in doc directory.

S.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 13/14] New command bootmenu: ANSI terminal Boot Menu support

2012-01-25 Thread Marek Vasut
  * Added some ANSI escape codes definitions in common.h
  * Configuration is done via env variables bootmenu_delay and
 bootmenu_num:
 
 bootmenu_delay=delay
 bootmenu_num=title=commands
 
 (title and commands are separated by first char '=')
 
 delay is delay in seconds of autobooting first entry
 num is boot menu entry, starting from zero
 title is text shown in boot screen
 commands are commands which will be executed when menu entry is
 selected

Do you need this command if you already have common/menu.c?

M

 
  * First argument of bootmenu command override bootmenu_delay env
  * If env bootmenu_delay or bootmenu arg is not specified, delay is 10
 seconds * If delay is 0, no entry will be shown on screen and first will
 be called * If delay is less then 0, no autoboot delay will be used
  * Boot Menu will stop finding next menu entry if last was not defined
  * Boot Menu always add menu entry U-Boot console at end of all entries
 
  * Example using:
 
 setenv bootmenu_0 Boot 1. kernel=bootm 0x8200  # Set first menu
 entry setenv bootmenu_1 Boot 2. kernel=bootm 0x8300  # Set second menu
 entry setenv bootmenu_2 Reset board=reset# Set third menu
 entry setenv bootmenu_3 U-Boot boot order=boot   # Set fourth menu
 entry setenv bootmenu_4  # Empty string is end of all bootmenu entries
 bootmenu 20# Run bootmenu with autoboot delay 20s
 
 Signed-off-by: Pali Rohár pali.ro...@gmail.com
 ---
 Changes since original version:
- ANSI bootmenu command: use puts instead printf
- Merged parts of patch Add some ANSI escape codes definitions in
 common.h
 
  common/Makefile  |1 +
  common/cmd_bootmenu.c|  366
 ++ include/common.h | 
  13 ++
  include/config_cmd_all.h |1 +
  4 files changed, 381 insertions(+), 0 deletions(-)
  create mode 100644 common/cmd_bootmenu.c
 
 diff --git a/common/Makefile b/common/Makefile
 index e1efd45..7402bfb 100644
 --- a/common/Makefile
 +++ b/common/Makefile
 @@ -67,6 +67,7 @@ COBJS-$(CONFIG_CMD_SOURCE) += cmd_source.o
  COBJS-$(CONFIG_CMD_BDI) += cmd_bdinfo.o
  COBJS-$(CONFIG_CMD_BEDBUG) += bedbug.o cmd_bedbug.o
  COBJS-$(CONFIG_CMD_BMP) += cmd_bmp.o
 +COBJS-$(CONFIG_CMD_BOOTMENU) += cmd_bootmenu.o
  COBJS-$(CONFIG_CMD_BOOTLDR) += cmd_bootldr.o
  COBJS-$(CONFIG_CMD_CACHE) += cmd_cache.o
  COBJS-$(CONFIG_CMD_CLEAR) += cmd_clear.o
 diff --git a/common/cmd_bootmenu.c b/common/cmd_bootmenu.c
 new file mode 100644
 index 000..931ed18
 --- /dev/null
 +++ b/common/cmd_bootmenu.c
 @@ -0,0 +1,366 @@
 +/*
 + * (C) Copyright 2011 Pali Rohár pali.ro...@gmail.com
 + *
 + * See file CREDITS for list of people who contributed to this
 + * project.
 + *
 + * 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; either version 2 of
 + * the License, or (at your option) any later version.
 + *
 + * 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., 59 Temple Place, Suite 330, Boston,
 + * MA 02111-1307 USA
 + */
 +
 +#include common.h
 +#include command.h
 +#include watchdog.h
 +#include linux/string.h
 +
 +#ifdef CONFIG_SYS_HUSH_PARSER
 +#include hush.h
 +#endif
 +
 +static char *get_option(int n)
 +{
 +
 + char name[] = bootmenu_\0\0;
 +
 + if (n  0 || n  99)
 + return NULL;
 +
 + sprintf(name+9, %d, n);
 +
 + return getenv(name);
 +
 +}
 +
 +static char *get_end_of_title(char *str)
 +{
 +
 + if (!str)
 + return NULL;
 +
 + return strchr(str, '=');
 +
 +}
 +
 +static int print_title(char *begin, char *end)
 +{
 +
 + if (!begin || !end || end  begin)
 + return 1;
 +
 + while (begin != end)
 + putc(*(begin++));
 +
 + return 0;
 +
 +}
 +
 +static int print_entry(int n, int reverse)
 +{
 +
 + char *str = get_option(n);
 + char *end = get_end_of_title(str);
 +
 + if (!end)
 + return 1;
 +
 + printf(ANSI_CURSOR_POSITION, n+4, 1);
 +
 + if (reverse)
 + puts(ANSI_COLOR_REVERSE);
 +
 + puts( );
 + print_title(str, end);
 + puts(ANSI_CLEAR_LINE_TO_END);
 +
 + if (reverse)
 + puts(ANSI_COLOR_RESET);
 +
 + return 0;
 +
 +}
 +
 +static int print_menu(int active)
 +{
 +
 + int n = 0;
 +
 + printf(ANSI_CURSOR_POSITION, 1, 1);
 + puts(ANSI_CLEAR_LINE);
 + printf(ANSI_CURSOR_POSITION, 2, 1);
 + puts(  *** U-Boot BOOT MENU ***);
 + puts(ANSI_CLEAR_LINE_TO_END);
 + printf(ANSI_CURSOR_POSITION, 3, 

Re: [U-Boot] [PATCH 13/14] New command bootmenu: ANSI terminal Boot Menu support

2012-01-25 Thread Pali Rohár
On Wednesday 25 January 2012 19:18:50 Marek Vasut wrote:
 Do you need this command if you already have common/menu.c?


I need menu which can work with ANSI terminal and framebuffer on device
screen. Something which can easy choose booting system...

I can look at menu.c if it can replace my bootmenu (or change bootmenu code to
use menu.c)...

Anyway this patch [13] and next [14] can be reviewed separatly. Nokia RX-51
support is in patches 1-12. Patch 14 is additional for rx51, which only add
this bootmenu support. U-Boot rx51 port working fine without 13 and 14.

--
Pali Rohár
pali.ro...@gmail.com

signature.asc
Description: This is a digitally signed message part.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot